**************************************************************************************
	;Header frs File-linken

	IFD	Flag_project
Flag_inkaene	set 1
	ENDC
	IFND	Flag_inkaene
Flag_inkaene	set 0
	ENDC
	IFEQ	Flag_inkaene
Flag_inkaene	set 1
	include	Nutz_project
	ELSEIF
**************************************************************************************
	include	Binary/Inka/Inka_ene.src

IBat_Obj0	EQU	Inka_Obj_0	;Flatter Anim
IBat_Obj1	EQU	Inka_Obj_1	;   "      "
IBat_Obj2	EQU	Inka_Obj_2	;   "      "
IBat_Obj3	EQU	Inka_Obj_3	;Hngt an Decke

ISwitch_Obj0	EQU	Inka_Obj_4	;Switch

IBumper_Obj0	EQU	Inka_Obj_5	;Nicht eingedrckt
IBumper_Obj1	EQU	Inka_Obj_6	;Eingedrckt

IStone_Obj0	EQU	Inka_Obj_7	;Rotation
IStone_Obj1	EQU	Inka_Obj_8	;    "

IDoor_Obj0	EQU	Inka_Obj_9	;Ganze Tr
IDoor_Obj1	EQU	Inka_Obj_9a	;Halbe Tr
IDoor_Obj2	EQU	Inka_Obj_9b	;Hide Tr

IPlatform_Obj0	EQU	Inka_Obj_10	;Mover

IChick_Obj0	EQU	Inka_Obj_12	;Huhn Laufkrper
IChick_Obj1	EQU	Inka_Obj_13	;Huhn Fuss
IChick_Obj2	EQU	Inka_Obj_14	; "    "
IChick_Obj3	EQU	Inka_Obj_16	;Flying Chick
IChick_Obj4	EQU	Inka_Obj_15	;   "     "

IFish_Obj0	EQU	Inka_Obj_17	;Fish
IFish_Obj1	EQU	Inka_Obj_18	;  "
IFish_Obj2	EQU	Inka_Obj_19	;Fish Attack

ISpeer_Obj0	EQU	Inka_Obj_20	;Speer Vertikal
ISpeer_Obj1	EQU	Inka_Obj_21	;Speer Horizontal
ISpeer_Obj2	EQU	Inka_Obj_20a	;Speer Vertikal geflippt

IHandle_Obj0	EQU	Inka_Obj_22	;Seilbahn Griff
IHandle_Obj1	EQU	Inka_Obj_22a	;    "      "

IExtra_Obj0	EQU	Inka_Obj_23	;Extra Lampe
IExtra_Obj1	EQU	Inka_Obj_24	;  "     "
IExtra_Obj2	EQU	Inka_Obj_25	;  "     "
IExtra_Obj3	EQU	Inka_Obj_26	;  "     "
IExtra_Obj4	EQU	Inka_Obj_27	;  "     "
IExtra_Obj5	EQU	Inka_Obj_39	;Extra Kopf
IExtra_Obj6	EQU	Inka_Obj_40	;  "    "
IExtra_Obj7	EQU	Inka_Obj_41	;  "    "

ILava_Obj0	EQU	Inka_Obj_28	;Lava-ball
ILava_Obj1	EQU	Inka_Obj_29	;  "   "
ILava_Obj2	EQU	Inka_Obj_30	;  "   "
ILava_Obj3	EQU	Inka_Obj_31	;  "   "
ILava_Obj4	EQU	Inka_Obj_32	;  "   "
ILava_Obj5	EQU	Inka_Obj_33	;  "   "
ILava_Obj6	EQU	Inka_Obj_34	;  "   "

ITorch_Obj0	EQU	Inka_Obj_35	;Fackel
ITorch_Obj1	EQU	Inka_Obj_36	;  "
ITorch_Obj2	EQU	Inka_Obj_37	;  "
ITorch_Obj3	EQU	Inka_Obj_38	;  "
**************************************************************************************
SI_HUHN_RIGHT		=064	*
SI_HUHN_LEFT		=065	*
SI_FLEDERMAUS		=066	*
SI_FISH_RIGHT		=067	*
SI_FISH_LEFT		=068	*
SI_SPEER_RIGHT		=069	*
SI_SPEER_LEFT		=070	*
SI_SPEER_UP		=071	*
SI_SPEER_DOWN		=072	*
SI_STONE		=073	*
SI_STONE_EFF		=074	*
SI_SEILBAHN		=075	*
SI_FFACKEL		=076	*
SI_LAVAFLAME_1		=077	*
SI_LAVAFLAME_2		=078	*
SI_LAVAFLAME_3		=079	*
SI_FIRE			=080	*
SI_FALLEN_AUSL_GROUND1	=081	*
SI_FALLEN_AUSL_GROUND2	=082	*
SI_AUSLSER		=083	*
SI_MOVER_X_Wait		=084	*
SI_MOVER_X_Move		=085	*
SI_MOVER_Y_Wait		=086	*
SI_MOVER_Y_Move		=087	*
SI_DOOR			=088	*
SI_DOOR_BUT		=089	*
SI_BUMPER		=090	*
SI_LAVA_UP		=091	*
SI_LAVA_DOWN		=092	*
SI_EF_W_DOWN		=093	*
SI_EF_W_UP		=094	*
SI_WATER_COME		=096	*
**************************************************************************************
SI_SEILBAHN_I:	dc.l	Handle_Seilbahn
		dc.w	18,16
		dc.l	Seilbahn_Anim
		dc.w	0,2
		dc.b	0,BOB_HI_PRIO
*-------------------------------------------------------------------------------------
SI_HUHN_RIGHT_I:	dc.l	IHuhn_Init
		dc.w	36,32
		dc.l	IHuhn_Anm_Right
		dc.w	0,2
		dc.b	0,BOB_MID_PRIO
SI_HUHN_LEFT_I:	dc.l	IHuhn_Init
		dc.w	36,32
		dc.l	IHuhn_Anm_Left
		dc.w	0,2
		dc.b	0,BOB_MID_PRIO
*-------------------------------------------------------------------------------------
SI_LAVA_UP_I:	dc.l	I_LAVA_UP
		dc.w	16,16
		dc.l	NullAnim
		dc.w	0,0
		dc.b	0,BOB_HI_PRIO
SI_LAVA_DOWN_I:	dc.l	I_LAVA_DOWN
		dc.w	16,16
		dc.l	NullAnim
		dc.w	0,0
		dc.b	0,BOB_HI_PRIO
*-------------------------------------------------------------------------------------
SI_AUSLSER_I:	dc.l	I_Auslser_Rout
		dc.w	48,16
		dc.l	NullAnim
		dc.w	0,0
		dc.b	0,BOB_HI_PRIO
SI_FALLEN_AUSL_GROUND1_I: dc.l	II_Button_Falle_1
		dc.w	32,16
		dc.l	InButton_Wait_AnimTab
		dc.w	0,5
		dc.b	0,BOB_HI_PRIO
SI_FALLEN_AUSL_GROUND2_I: dc.l	II_Button_Falle_2
		dc.w	32,16
		dc.l	InButton_Wait_AnimTab
		dc.w	0,5
		dc.b	0,BOB_HI_PRIO
SI_DOOR_BUT_I:	dc.l	II_Button_Door_Up
		dc.w	32,16
		dc.l	InButton_Wait_AnimTab
		dc.w	0,5
		dc.b	0,BOB_HI_PRIO
*-------------------------------------------------------------------------------------
SI_FFACKEL_I:	dc.l	Init_Lamp
		dc.w	32,16
		dc.l	Lamp_Anim
		dc.w	0,5
		dc.b	BACK_ANIM,BOB_LOW_PRIO
*-------------------------------------------------------------------------------------
SI_SPEER_RIGHT_I:	dc.l	I_Speer_Right
		dc.w	7,48
		dc.l	Speer_Right_Anim
		dc.w	0,0
		dc.b	0,BOB_MID_PRIO
SI_SPEER_LEFT_I:	dc.l	I_Speer_Left
		dc.w	7,48
		dc.l	Speer_Left_Anim
		dc.w	0,0
		dc.b	0,BOB_MID_PRIO
SI_SPEER_DOWN_I:	dc.l	I_Speer_Down
		dc.w	48,16
		dc.l	Speer_Down_Anim
		dc.w	0,0
		dc.b	0,BOB_MID_PRIO
SI_SPEER_UP_I:	dc.l	I_Speer_Up
		dc.w	48,16
		dc.l	Speer_Up_Anim
		dc.w	0,0
		dc.b	0,BOB_MID_PRIO
*-------------------------------------------------------------------------------------
SI_DOOR_I:		dc.l	ITest_Init_Doors
		dc.w	64,16
		dc.l	IDoor_Anim_Norm
		dc.w	0,20
		dc.b	0,BOB_HI_PRIO
*-------------------------------------------------------------------------------------
SI_STONE_EFF_I:	dc.l	STONE_EFF_Rout
		dc.w	32,32
		dc.l	NullAnim
		dc.w	0,300
		dc.b	0,BOB_MID_PRIO
SI_STONE_I:		dc.l	STONE_Rout1_InitI
		dc.w	32,32
		dc.l	ISTONE_Left_Anm
		dc.w	0,3
		dc.b	0,BOB_MID_PRIO
*-------------------------------------------------------------------------------------
SI_FLEDERMAUS_I:	dc.l	Fleder_Maus_Rout
		dc.w	32,48
		dc.l	Fleder_Hng_Anim
		dc.w	0,0
		dc.b	0,BOB_MID_PRIO
*-------------------------------------------------------------------------------------
SI_FISH_RIGHT_I:	dc.l	Init_Inkaf_Right
		dc.w	32,32
		dc.l	Inkaf_R_Anm
		dc.w	0,8
		dc.b	0,BOB_MID_PRIO
SI_FISH_LEFT_I:	dc.l	Init_Inkaf_Left
		dc.w	32,32
		dc.l	Inkaf_L_Anm
		dc.w	0,8
		dc.b	0,BOB_MID_PRIO
*-------------------------------------------------------------------------------------
SI_BUMPER_I:	dc.l	Init_IBumper
		dc.w	16,32
		dc.l	IBumper_Wait_Anm
		dc.w	0,2
		dc.b	0,BOB_HI_PRIO
*-------------------------------------------------------------------------------------
SI_MOVER_Y_Wait_I:	;96,300
		dc.l	I_Mover_Y_Rout_1_W
		dc.w	15,64
		dc.l	IMover_AnimTable
		dc.w	0,$ffff
		dc.b	0,BOB_HI_PRIO
SI_MOVER_Y_Move_I:	;96,300
		dc.l	I_Mover_Y_Rout_1_M
		dc.w	15,64
		dc.l	IMover_AnimTable
		dc.w	0,$ffff
		dc.b	0,BOB_HI_PRIO
SI_MOVER_X_Wait_I:	;96,300
		dc.l	I_Mover_X_Rout_1_W
		dc.w	15,64
		dc.l	IMover_AnimTable
		dc.w	0,$ffff
		dc.b	0,BOB_HI_PRIO
SI_MOVER_X_Move_I:	;96,300
		dc.l	I_Mover_X_Rout_1_M
		dc.w	15,64
		dc.l	IMover_AnimTable
		dc.w	0,$ffff
		dc.b	0,BOB_HI_PRIO
*-------------------------------------------------------------------------------------
SI_LAVAFLAME_1_I:
		dc.l	I_Lava_Fire_1
		dc.w	16,16
		dc.l	NullAnim
		dc.w	0,$ffff
		dc.b	0,BOB_MID_PRIO
SI_LAVAFLAME_2_I:
		dc.l	I_Lava_Fire_2
		dc.w	16,16
		dc.l	NullAnim
		dc.w	0,$ffff
		dc.b	0,BOB_MID_PRIO
SI_LAVAFLAME_3_I:
		dc.l	I_Lava_Fire_3
		dc.w	16,16
		dc.l	NullAnim
		dc.w	0,$ffff
		dc.b	0,BOB_MID_PRIO

SI_FIRE_I:	dc.l	I_Fire_Fly
		dc.w	16,16
		dc.l	Fire_Anim_ANF
		dc.w	0,2
		dc.b	0,BOB_MID_PRIO

**************************************************************************************
Show_InkaObject:	*--*>Show it
		move.w	#Inka_EnemyVRam/32,d3
		move.l	Bob_SigelInfo(a4),a0
		move.w	Bob_FlipStatus(a4),d2
		jsr	Show_Simple_Object
		rts
**************************************************************************************
*-------------------------------------------------------------------------------------
*--------------	MOVER DINGENS
*-------------------------------------------------------------------------------------
IMover_AnimTable:	dc.w	0
		dc.l	IPlatform_Obj0,0
		dc.w	ENTRY_END
		dc.l	IMover_AnimTable
*-------------------------------------------------------------------------------------
Mover_IGlobal:	*--*>Global Routs for Mover
		jsr	Test_Bob_Out
		*--*>Make Movement
		move.l	Mover_Move_Routine(a4),a0
		jsr	(a0)
		*--*>Test Temet on Top
		jsr	Test_TEMET_On_Top
		*--*>ENDE
		jsr	Show_InkaObject
		rts
**************************************************************************************
*-------------------------------------------------------------------------------------
*--------------	BUMPER
*-------------------------------------------------------------------------------------
*---------------------------------------------------------------------------
Init_IBumper:	*--*>Init Underworld Bumper
		move.b	#-8,GBumper_Bump_Speed(a4)
		move.b	#10,GBumper_Bump_Time(a4)
		and	#$fff0,Bob_X_Position(a4)
		and	#$fff0,Bob_Y_Position(a4)
		move.l	#Bumper_Rout_Gl,Bob_Routine(a4)
		move.l	#Show_InkaObject,GBumper_Show_Rout(a4)
		move.l	#IBumper_Work_Anm,GBumper_Work_Anim(a4)
		rts
*---------------------------------------------------------------------------
IBumper_Wait_Anm:	dc.w	0
		dc.l	IBumper_Obj0,0
		dc.w	ENTRY_END
		dc.l	IBumper_Wait_Anm
IBumper_Work_Anm:	dc.w	0
		dc.l	IBumper_Obj1,8
		dc.w	0
		dc.l	IBumper_Obj1,8
		dc.w	0
		dc.l	IBumper_Obj1,8
		dc.w	0
		dc.l	IBumper_Obj1,8
		dc.w	ENTRY_END
		dc.l	IBumper_Wait_Anm
*---------------------------------------------------------------------------
**************************************************************************************
*-------------------------------------------------------------------------------------
*--------------------	FISH
*-------------------------------------------------------------------------------------
**************************************************************************************
Inkaf_L_Anm:	dc.w	1
		dc.l	IFish_Obj0,0
		dc.w	1
		dc.l	IFish_Obj1,0
		dc.w	ENTRY_END
		dc.l	Inkaf_L_Anm
Inkaf_R_Anm:	dc.w	0
		dc.l	IFish_Obj0,0
		dc.w	0
		dc.l	IFish_Obj1,0
		dc.w	ENTRY_END
		dc.l	Inkaf_R_Anm
Inkaf_Att_Anf_R_Anm:	dc.w	0
		dc.l	IFish_Obj2
		dc.w	0,-1
		dc.w	ENTRY_END
		dc.l	Inkaf_Att_Anf_R_Anm
Inkaf_Att_Anf_L_Anm:	dc.w	1
		dc.l	IFish_Obj2
		dc.w	0,-1
		dc.w	ENTRY_END
		dc.l	Inkaf_Att_Anf_L_Anm
*-------------------------------------------------------------------------------------
Inkaf_Attack_Flag	=Bob_Special_1	;B
Inkaf_X_Dir		=Bob_Special_1+1	;B
Inkaf_X_Range	=Bob_Special_2	;W
Inkaf_Y_Speed	=Bob_Special_3	;W
Inkaf_Y_Acce	=Bob_Special_4	;W
Inkaf_Which_Rout	=Bob_Koords_Save1	;W
Inkaf_Wait_Time	=Bob_Koords_Save1+2	;W
Inkaf_Y_Schwank	=Bob_Koords_Save2	;W
Inkaf_X_Speed	=Bob_Koords_Save2+2	;W
Inkaf_Hit		=Bob_Hit		;B
Inkaf_HitDead	=Bob_Hit+1	;B
*-------------------------------------------------------------------------------------
ATT_SP		=1
*-------------------------------------------------------------------------------------
Init_Inkaf_Left:	*--*>Init Values for Flyer
		move.b	#-1,Inkaf_X_Dir(a4)
		move.l	#Inkaf_Main_Rout,Bob_Routine(a4)
		move	#IF_NORMAL_ROUT,Inkaf_Which_Rout(a4)
		move	#1,Inkaf_X_Speed(a4)
		move	#$0028,Inkaf_Y_Acce(a4)
		jsr	Test_Fish_Out_I
		rts
Init_Inkaf_Right:	*--*>Init Values for Flyer
		move.b	#1,Inkaf_X_Dir(a4)
		move.l	#Inkaf_Main_Rout,Bob_Routine(a4)
		move	#IF_NORMAL_ROUT,Inkaf_Which_Rout(a4)
		move	#1,Inkaf_X_Speed(a4)
		move	#$0028,Inkaf_Y_Acce(a4)
		jsr	Test_Fish_Out_I
		rts
*-------------------------------------------------------------------------------------
Test_Fish_Out_I:	*--*>Test Fish Out
		jsr	Test_Bob_Out
		move	WaterBase(a6),d0
		sub	Bob_Y_Position(a4),d0
		bmi.s	.NoOut
		cmp	#16,d0
		bls.s	.NoOut
		cmp	#48,d0
		bls.s	.SetPos
		jsr	Out_Bob
.NoOut		rts
.SetPos		move	WaterBase(a6),Bob_Y_Position(a4)
		rts
*-------------------------------------------------------------------------------------
IF_FAST_AS		=5
IF_NORM_AS		=8
*-------------------------------------------------------------------------------------
IF_NORMAL_ROUT	=0
IF_NORMAL_HIT	=1
IF_FALL_DOWN	=2
IF_FLY_HIT		=3
IF_ATTACK_ROUT	=4
*-------------------------------------------------------------------------------------
Inkaf_Main_Rout	*--*>StandartRouts
		jsr	Test_Fish_Out_I
		jsr	Standart_BobAnim
		jsr	Show_InkaObject
		jsr	.Test_X_Kollision
		*--*>Test which Routs
		cmp	#IF_NORMAL_ROUT,Inkaf_Which_Rout(a4)
		beq.s	.IF_NORMAL_ROUTs
		cmp	#IF_NORMAL_HIT,Inkaf_Which_Rout(a4)
		beq	.IF_NORMAL_HITs
		cmp	#IF_FALL_DOWN,Inkaf_Which_Rout(a4)
		beq	.Fall_Routs
		cmp	#IF_FLY_HIT,Inkaf_Which_Rout(a4)
		beq	.IF_FLY_HIT
		cmp	#IF_ATTACK_ROUT,Inkaf_Which_Rout(a4)
		beq.s	.IF_ATTACK_ROUTs
		rts
*-------------------------------------------------------------------------------------
*-----------	Inkaf CALL ROUTS DEPENDING ON MODE
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.IF_NORMAL_ROUTs	*--*>Test if Timet Hits Inkaf
		jsr	.Test_TEMET_Hit_Bob
		jsr	.Inkaf_Y_Schwank
		jsr	Test_TEMET_Hit
		*--*>Test if wait
		tst	Inkaf_Wait_Time(a4)
		beq.s	.NRouts
		*--*>Wait Time
		subq	#1,Inkaf_Wait_Time(a4)
		rts
.NRouts		*--*>Call Dir Routs
		jsr	.Test_TEMET_InRange
		jsr	.Make_X_Speed
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.IF_ATTACK_ROUTs	*--*>Test if Timet Hits Inkaf
		jsr	.Test_TEMET_Hit_Bob
		jsr	Test_TEMET_Hit
		*--*>Test if wait
		tst	Inkaf_Wait_Time(a4)
		beq.s	.NRouts4
		*--*>Wait Time
		tst.b	Akt_Copper_Frame(a6)
		beq.s	.NoSubUp
		addq	#1,Bob_X_Position(a4)
		tst.b	Inkaf_X_Dir(a4)
		bmi.s	.NoSubX
		subq	#2,Bob_X_Position(a4)
.NoSubX		subq	#1,Bob_Y_Position(a4)
.NoSubUp		subq	#1,Inkaf_Wait_Time(a4)
		tst	Inkaf_Wait_Time(a4)
		bne.s	.Ende
		*--*>Init New Anim
		move	#$0480,Inkaf_Y_Speed(a4)
		move	#ATT_SP,Inkaf_X_Speed(a4)
		move	#IF_FAST_AS,Bob_Anim_Delay(a4)
		move	#IF_FAST_AS,Bob_Anim_Delay_Init(a4)
.Ende		rts
.NRouts4		*--*>Call Dir Routs
		jsr	.Make_X_Speed
		jsr	.Make_Y_Speed
		jsr	.Test_Y_Koll_Dam
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.IF_NORMAL_HITs	*--*>Test if Timet Hits Inkaf
		jsr	.Test_TEMET_Hit_Bob
		jsr	Test_TEMET_Hit
		jsr	.Inkaf_Y_Bump
		jsr	.Test_Y_Koll_Dam
		*--*>Test if wait
		tst	Inkaf_Wait_Time(a4)
		beq.s	.NRouts1
		*--*>Wait Time
		subq	#1,Inkaf_Wait_Time(a4)
		rts
.NRouts1		*--*>Call Dir Routs
		jsr	.Make_X_Speed
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.IF_FLY_HIT		*--*>Test if Timet Hits Inkaf
		jsr	.Test_TEMET_Hit_Bob
		jsr	Test_TEMET_Hit
		jsr	.Inkaf_Y_Schwank
		*--*>Test if wait
		tst	Inkaf_Wait_Time(a4)
		beq.s	.NRouts2
		*--*>Wait Time
		subq	#1,Inkaf_Wait_Time(a4)
		rts
.NRouts2		*--*>Call Dir Routs
		jsr	.Make_X_Speed
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Fall_Routs		*--*>Test_DownKollision
		add	#$0020,Inkaf_Y_Speed(a4)
		move.b	Inkaf_Y_Speed(a4),d0
		ext.w	d0
		add	d0,Bob_Y_Position(a4)
.Test_Y_Koll_Dam	move	Bob_X_Position(a4),d0
		add	#16,d0
		move	Bob_Y_Position(a4),d1
		add	#32,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#swand,Block_Through(a1)
		beq.s	.TDown_Kollide
		cmp.b	#boden,Block_Through(a1)
		bne.s	.No_Down_Kollide
.TDown_Kollide	*--*>Damage or Normal
		cmp	#IF_ATTACK_ROUT,Inkaf_Which_Rout(a4)
		bne.s	.Down_Kollide
		*--*>Normal
		move.l	#Inkaf_L_Anm,Bob_Next_Anim(a4)
		tst.b	Inkaf_X_Dir(a4)
		bmi.s	.OkLeftAnm
		move.l	#Inkaf_R_Anm,Bob_Next_Anim(a4)
.OkLeftAnm		move	#IF_NORMAL_ROUT,Inkaf_Which_Rout(a4)
		move	#IF_NORM_AS,Bob_Anim_Delay(a4)
		move	#IF_NORM_AS,Bob_Anim_Delay_Init(a4)
		move	#$0-$0300,Inkaf_Y_Speed(a4)
		move	#$0030,Inkaf_Y_Acce(a4)
		moveq	#16,d3
		moveq	#-4,d4
		jsr	ENTER_SMOKE_Y_Offs
		IFEQ	SOUNDFX
		moveq	#10,d0
		jsr	TFMX+16
		ENDC
		rts
.Down_Kollide	*--*>Damage Routs
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_X_Offs
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_Y_Offs
		jsr	Out_Bob_Damage
		IFEQ	SOUNDFX
		moveq	#11,d0
		jsr	TFMX+16
		ENDC
.No_Down_Kollide	rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
*-------------------------------------------------------------------------------------
.Inkaf_Y_Schwank	*--*>Test if Nach oben Fliegen
		tst.b	Akt_Copper_Frame(a6)
		bne.s	.NoTest
		move	WaterBase(a6),d0
		sub	Bob_Y_Position(a4),d0
		bpl.s	.NoTest
		neg	d0
		cmp	#20,d0
		blo.s	.NoTest
		*--*>Test Y Koll
		move	Bob_X_Position(a4),d0
		add	#16,d0
		move	Bob_Y_Position(a4),d1
		jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq.s	.NoDeckeHit
		*--*>Decke Init Wait
		moveq	#0,d3
		moveq	#0,d4
		jsr	ENTER_SMOKE_Y_Offs
		addq	#2,Bob_Y_Position(a4)
		move	#$0180,Inkaf_Y_Speed(a4)
		move	#0-$0020,Inkaf_Y_Acce(a4)
		IFEQ	SOUNDFX
		moveq	#10,d0
		jsr	TFMX+16
		ENDC
.NoDeckeHit		*--*>Test if UP necessary
		lea	(a6),a2
		move	TEMET_Y_Position(a2),d0
		sub	Bob_Y_Position(a4),d0
		bmi.s	.FishUpone
		cmp	#30,d0
		bhi.s	.NoTest
.FishUpone		*--*>eins Hoch
		subq	#1,Bob_Y_Position(a4)
.NoTest		*--*>Y Speed Make
		tst	Inkaf_Y_Acce(a4)
		bpl.s	.Acce_Down
.Acce_Up		*--Test if Acce should be down
		move.b	Inkaf_Y_Speed(a4),d0
		neg.b	d0
		cmp.b	#2,d0
		bne.s	.Add_Acce_Speed
		neg	Inkaf_Y_Acce(a4)	
		bra.s	.Add_Acce_Speed
.Acce_Down		*--Test if Acce should be up
		move.b	Inkaf_Y_Speed(a4),d0
		cmp.b	#2,d0
		bne.s	.Add_Acce_Speed
		neg	Inkaf_Y_Acce(a4)
		;bra.s	.Add_Acce_Speed
.Add_Acce_Speed	*--Add Acce to Speed
		move	Inkaf_Y_Acce(a4),d0
		add	d0,Inkaf_Y_Speed(a4)
		*--Add Speed to Pos
		move.b	Inkaf_Y_Speed(a4),d0
		ext.w	d0
		add	d0,Bob_Y_Position(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Inkaf_Y_Bump	*--*>Make Y BUMP
		move.b	Inkaf_Y_Speed(a4),d0
		ext.w	d0
		add	d0,Bob_Y_Position(a4)
		sub	#$0020,Inkaf_Y_Speed(a4)
		cmp.b	#$fe,Inkaf_Y_Speed(a4)
		bne.s	.NoEnd
		*--*>End this shit
		move	#IF_FLY_HIT,Inkaf_Which_Rout(a4)
		clr.w	Inkaf_Y_Schwank(a4)
		move	#$0010,Inkaf_Y_Acce(a4)
.NoEnd		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Make_X_Speed	*--*>X Speed Make
		cmp	#IF_NORMAL_ROUT,Inkaf_Which_Rout(a4)
		bne.s	.NoAktFrameTest
		tst.b	Inkaf_HitDead(a4)
		bne.s	.NoAktFrameTest
		tst.b	Akt_Copper_Frame(a6)
		beq.s	.NoAktFrameTest
		rts
.NoAktFrameTest	tst.b	Inkaf_X_Dir(a4)
		bpl.s	.Move_Right
.Move_Left		*--Test if Flyer scholud move Right
		tst	Inkaf_X_Range(a4)
		bpl.s	.Move_X
		move	Inkaf_X_Range(a4),d0
		neg	d0
		cmp	#100,d0
		blo.s	.Move_X
		neg.b	Inkaf_X_Dir(a4)
		move.l	#Inkaf_R_Anm,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		move	#50,Inkaf_Wait_Time(a4)
		bra.s	.Move_X
.Move_Right		*--Test if Flyer scholud move Left
		tst	Inkaf_X_Range(a4)
		bmi.s	.Move_X
		move	Inkaf_X_Range(a4),d0
		cmp	#100,d0
		blo.s	.Move_X
		neg.b	Inkaf_X_Dir(a4)
		move.l	#Inkaf_L_Anm,Bob_Next_Anim(a4)
		clr.w	Bob_Anim_Delay(a4)
		move	#50,Inkaf_Wait_Time(a4)
		;bra.s	.Move_X
.Move_X		*--Move Flyer in X Direction
		move.b	Inkaf_X_Dir(a4),d0
		ext.w	d0
		move	Inkaf_X_Speed(a4),d1
		asl	d1,d0
		add	d0,Bob_X_Position(a4)
		cmp	#IF_ATTACK_ROUT,Inkaf_Which_Rout(a4)
		beq.s	.NoRangeChange
		add	d0,Inkaf_X_Range(a4)
.NoRangeChange	rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Make_Y_Speed	*--*>Y Speed Make
		move.b	Inkaf_Y_Speed(a4),d0
		ext.w	d0
		add	d0,Bob_Y_Position(a4)
		sub	#$0018,Inkaf_Y_Speed(a4)
		cmp	#$0100,Inkaf_Y_Speed(a4)
		bhi.s	.NoGeradeFly
		tst.b	Inkaf_X_Dir(a4)
		bpl.s	.Init_Right_Fly
.Init_Leftt_Fly	*--*>Init Left Fly Anim
		move.l	#Inkaf_L_Anm,Bob_Next_Anim(a4)
		bra.s	.NoGeradeFly
.Init_Right_Fly	*--*>Init Right Fly Anim
		move.l	#Inkaf_R_Anm,Bob_Next_Anim(a4)
.NoGeradeFly	*--*>Test if Attack_Off
		tst	Inkaf_Y_Speed(a4)
		bpl.s	.Endeit
		*--*>Attack Off
		move	#IF_NORMAL_ROUT,Inkaf_Which_Rout(a4)
.Endeit		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_X_Koll_Dam	rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_X_Kollision	*--*>Test X Kollision of Flyer
		move	Bob_X_Position(a4),d0
		add	Bob_X_Offset(a4),d0
		move	Bob_Y_Position(a4),d1
		add	Bob_Y_Offset(a4),d1
		add	#16,d1
		tst.b	Inkaf_X_Dir(a4)
		bmi.s	.Test_Left_X_Koll
.Test_Right_X_Koll	add	#32,d0
.Test_Left_X_Koll	jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq.s	.NoXKolli1
		*--Init Right Flyer
		move	#IF_NORMAL_ROUT,Inkaf_Which_Rout(a4)
		clr.w	Bob_Anim_Delay(a4)
		move	#50,Inkaf_Wait_Time(a4)
		move.l	#Inkaf_R_Anm,Bob_Next_Anim(a4)
		neg.b	Inkaf_X_Dir(a4)
		bpl.s	.OkRight
		move.l	#Inkaf_L_Anm,Bob_Next_Anim(a4)
.NoXKolli1
.OkRight		rts
*-------------------------------------------------------------------------------------
*-----------	Inkaf DEAD/DAMAGE ROUTS
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Test_TEMET_Hit_Bob	*--*>Test if Bob should blink White
		tst.b	Akt_Copper_Frame(a6)
		beq.s	.NoColourOn
		tst.b	Inkaf_Hit(a4)
		beq.s	.NoColourOn
		subq.b	#1,Inkaf_Hit(a4)
.NoColourOn		*--*>Test Kollision with TEMET
		lea	(a6),a2
		jsr	KollTopBobTest
		tst	d7
		bmi	.NoKoll
		*--Kollision ! Test if Flyer should explode
		tst.b	Inkaf_HitDead(a4)
		bne.s	.Inkaf_Explode
		cmp	#FLIEGEN,TEMET_Status(a2)
		beq.s	.Inkaf_Explode
.Make_Bob_Hit	*--Make Bob Hit
		lea	(a6),a2
		jsr	Make_Bump
		move.b	#1,Inkaf_HitDead(a4)
		move	#1,Inkaf_X_Speed(a4)
		move.b	#12,Inkaf_Hit(a4)
		move	#IF_NORMAL_HIT,Inkaf_Which_Rout(a4)
		move	#IF_FAST_AS,Bob_Anim_Delay(a4)
		move	#IF_FAST_AS,Bob_Anim_Delay_Init(a4)
		move	#$0300,Inkaf_Y_Speed(a4)
		move	#$0010,Inkaf_Y_Acce(a4)
		move	#50,Inkaf_Wait_Time(a4)
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_Y_Offs
		IFEQ	SOUNDFX
		moveq	#9,d0
		jsr	TFMX+16
		ENDC
		tst.b	Inkaf_X_Dir(a4)
		bpl.s	.Init_Right_FlyH
.Init_Leftt_FlyH	*--*>Init Left Fly Anim
		move.l	#Inkaf_L_Anm,Bob_Next_Anim(a4)
		rts
.Init_Right_FlyH	*--*>Init Right Fly Anim
		move.l	#Inkaf_R_Anm,Bob_Next_Anim(a4)
		rts
.Inkaf_Explode	*--Inkaf Explode
		lea	(a6),a2
		jsr	Make_Bump
		move	#IF_FALL_DOWN,Inkaf_Which_Rout(a4)
		move	#$0100,Inkaf_Y_Speed(a4)
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_X_Offs
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_Y_Offs
		IFEQ	SOUNDFX
		moveq	#9,d0
		jsr	TFMX+16
		ENDC
		rts
.NoKoll		*--keine Kollision
		rts
**************************************************************************************
.Test_TEMET_InRange	*--*> Test if TEMET is in Range
		*--Get Values
		lea	(a6),a2
		move	TEMET_X_Position(a2),d0
		move	TEMET_Y_Position(a2),d1
		*--Sub Bob Values
		sub	Bob_X_Position(a4),d0
		sub	#16,d0
		sub	Bob_Y_Position(a4),d1
		*--Test if Bob-YDir is down
		bmi.s	.No_Temet_Trace
		cmp	#16,d1
		blo.s	.No_Temet_Trace
		cmp	#80,d1
		bhs.s	.No_Temet_Trace
		*--Test if Direction is Ok
		tst	d0
		bpl.s	.Inkaf_Left
.Inkaf_Right	*--Inkaf is Right
		tst.b	Inkaf_X_Dir(a4)
		bpl.s	.No_Temet_Trace
		neg	d0
		cmp	#40,d0
		bls.s	.No_Temet_Trace
		cmp	#120,d0
		bhs.s	.No_Temet_Trace
		bra.s	.TEMET_Trace
.Inkaf_Left		*--Inkaf is Left
		tst.b	Inkaf_X_Dir(a4)
		bmi.s	.No_Temet_Trace
		cmp	#40,d0
		bls.s	.No_Temet_Trace
		cmp	#120,d0
		bhs.s	.No_Temet_Trace
.TEMET_Trace	*--INIT Beschl down
		move	#IF_NORM_AS,Bob_Anim_Delay(a4)
		move	#IF_NORM_AS,Bob_Anim_Delay_Init(a4)
		move	#IF_ATTACK_ROUT,Inkaf_Which_Rout(a4)
		move	#25,Inkaf_Wait_Time(a4)
		tst.b	Inkaf_X_Dir(a4)
		bpl.s	.Init_Right_att
.Init_Leftt_att	*--*>Init Left Fly Anim
		move.l	#Inkaf_Att_Anf_L_Anm,Bob_Next_Anim(a4)
		bra.s	.No_Temet_Trace
.Init_Right_att	*--*>Init Right Fly Anim
		move.l	#Inkaf_Att_Anf_R_Anm,Bob_Next_Anim(a4)
.No_Temet_Trace	rts

**************************************************************************************
*-------------------------------------------------------------------------------------
*-------------------	FLEDERMAUS
*-------------------------------------------------------------------------------------
**************************************************************************************
Fleder_Hng_Anim:	dc.w	0
		dc.l	IBat_Obj3
		dc.w	16,0
		dc.w	ENTRY_END
		dc.l	Fleder_Hng_Anim
Fleder_Fly_Anim:	dc.w	0
		dc.l	IBat_Obj0
		dc.w	0,0
		dc.w	0
		dc.l	IBat_Obj1
		dc.w	-3,10
		dc.w	0
		dc.l	IBat_Obj2
		dc.w	+1,10
		dc.w	0
		dc.l	IBat_Obj2
		dc.w	+1,10
		dc.w	0
		dc.l	IBat_Obj1
		dc.w	-3,10
		dc.w	0
		dc.l	IBat_Obj1
		dc.w	-3,10
		dc.w	0
		dc.l	IBat_Obj0
		dc.w	0,0
		dc.w	0
		dc.l	IBat_Obj0
		dc.w	0,0
		dc.w	ENTRY_END
		dc.l	Fleder_Fly_Anim
*-------------------------------------------------------------------------------------
Fl_Max_Speed_X	=Bob_Special_1	;B
Fl_Max_Speed_Y	=Bob_Special_1+1	;B
Fl_Speed_X		=Bob_Special_2	;W
Fl_Speed_Y		=Bob_Special_3	;W
Fl_X_Dir		=Bob_Hit		;B
Fl_Y_Dir		=Bob_Hit+1	;B
Fl_Y_Pos_Rest	=Bob_Koords_Save1	;LW
Fl_X_Pos_Rest	=Bob_Koords_Save2	;LW
Fl_Time		=Bob_Special_4	;B
Fl_Rout		=Bob_Special_4+1	;B
*-------------------------------------------------------------------------------------
FL_WAIT		=0
FL_FLY		=1
*-------------------------------------------------------------------------------------
Fleder_Maus_Rout	*--*>Rout
		jsr	Standart_BobAnim
		jsr	Show_InkaObject

		jsr	Test_TIMET_HitBob
		jsr	Test_Bob_Out
		cmp.b	#BOB_FALSE,Bob_Used(a4)
		beq.s	.NoMakeOther

		cmp.b	#FL_WAIT,Fl_Rout(a4)
		beq	.Make_Wait_Fleder
		cmp.b	#FL_FLY,Fl_Rout(a4)
		beq.s	.Make_Fly_Fleder
.NoMakeOther	rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Make_Fly_Fleder	*--*>FLY FLEDER
		tst	Fl_Speed_Y(a4)
		bpl.s	.NoDecke_Test
		*--*>Decke Test
		move	Bob_X_Position(a4),d0
		add	#24,d0
		move	Bob_Y_Position(a4),d1
		jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq.s	.NoDecke_Test
		*--*>Decke Init Wait
		move.b	#80,Fl_Time(a4)
		move.b	#FL_WAIT,Fl_Rout(a4)
		move.l	#Fleder_Hng_Anim,Bob_Next_Anim(a4)
		rts
.NoDecke_Test	*--*>Make_Fly
		tst	Fl_Speed_Y(a4)
		bmi.s	.upFly
		move.b	Fl_Speed_Y(a4),d0
		cmp.b	Fl_Max_Speed_Y(a4),d0
		bls.s	.NoUpFly
		*--*>Umdrehen !
		move.b	#-1,Fl_Y_Dir(a4)
		bra.s	.NoUpFly
.upFly		*--*>Nach Oben fliegend testen
		move.b	Fl_Speed_Y(a4),d0
		neg.b	d0
		cmp.b	Fl_Max_Speed_Y(a4),d0
		bls.s	.NoUpFly
		cmp.b	#-1,Fl_Time(a4)
		bne.s	.NoTimeUpInit
		move.b	#30,Fl_Time(a4)
		bra.s	.NoTimeSub
.NoTimeUpInit	*--*>Sub Time
		subq.b	#1,Fl_Time(a4)
		bne.s	.NoTimeSub
		*--*>Init FlyDown
		move.b	#1,Fl_Y_Dir(a4)
		move.b	#-1,Fl_Time(a4)
		IFEQ	SOUNDFX
		moveq	#14,d0
		jsr	TFMX+16
		ENDC
		bra.s	.NoUpFly
.NoTimeSub		*--*>NoYBeschl
		bra.s	.NoYBeschl
.NoUpFly		*--*>Beschl. Y
		move	#$000c,d0
		tst.b	Fl_Y_Dir(a4)
		bpl.s	.BeschlY
		move	#-$000c,d0
.BeschlY		add	d0,Fl_Speed_Y(a4)
.NoYBeschl		move	Bob_Y_Position(a4),Fl_Y_Pos_Rest(a4)
		moveq	#0,d0
		move.b	Fl_Speed_Y(a4),d0
		ext.w	d0
		swap	d0
		move.b	Fl_Speed_Y+1(a4),d0
		lsl	#8,d0
		add.l	d0,Fl_Y_Pos_Rest(a4)
		move	Fl_Y_Pos_Rest(a4),Bob_Y_Position(a4)
		*--*>Test if Ground Kolli
		move	Bob_X_Position(a4),d0
		add	#24,d0
		move	Bob_Y_Position(a4),d1
		add	Bob_Y_Offset(a4),d1
		add	Bob_Height(a4),d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#boden,Block_Through(a1)
		bne.s	.MAKE_X
		*--*>GroundKoll
		move.b	#-1,Fl_Y_Dir(a4)
		clr.w	Fl_Speed_Y(a4)

.MAKE_X		*--*>Test if MaxSpeed is reached
		move.b	Fl_Speed_X(a4),d0
		bpl.s	.OkXpos
		neg.b	d0
.OkXpos		cmp.b	Fl_Max_Speed_X(a4),d0
		bne.s	.NoXMaxS_Reached
		*--*>Change Direction
		neg.b	Fl_X_Dir(a4)
		move.b	#4,Fl_Max_Speed_X(a4)
.NoXMaxS_Reached	*--*>MakeBeschl
		move	#$000c,d0
		tst.b	Fl_X_Dir(a4)
		bpl.s	.BeschlX
		neg	d0
.BeschlX		add	d0,Fl_Speed_X(a4)
.NoXBeschl		move	Bob_X_Position(a4),Fl_X_Pos_Rest(a4)
		move.b	Fl_Speed_X(a4),d0
		ext.w	d0
		swap	d0
		move.b	Fl_Speed_X+1(a4),d0
		lsl	#8,d0
		add.l	d0,Fl_X_Pos_Rest(a4)
		move	Fl_X_Pos_Rest(a4),Bob_X_Position(a4)
		*--*>Test X Kollision
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		add	Bob_Y_Offset(a4),d1
		add	#16,d1
		tst	Fl_Speed_X(a4)
		bmi.s	.okLeftSide
		add	#48,d0
.okLeftSide		jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_KOLLISION_BIT,d0
		beq.s	.NoXKolli
		*--X-Kollision
		neg.b	Fl_X_Dir(a4)
		move.b	#4,Fl_Max_Speed_X(a4)
		clr.w	Fl_Speed_X(a4)
.NoXKolli		*--*>make Temet Test Hit
		jsr	Test_TEMET_Hit
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Make_Wait_Fleder	*---*>FLEDER is hnging
		*--Test Force Wait
		tst.b	Fl_Time(a4)
		beq.s	.NoTimeWait
		subq.b	#1,Fl_Time(a4)
		bra	.Ende

.NoTimeWait		*--Test if TEMET awakes Fleder
		lea	(a6),a2
		move	Bob_X_Position(a4),d0
		sub	TEMET_X_Position(a2),d0
		moveq	#1,d7
		addq	#8,d0
		bpl.s	.okX
		moveq	#-1,d7
		neg	d0
.okX		cmp	#90,d0
		bhs.s	.Ende
		move	Bob_Y_Position(a4),d0
		sub	TEMET_Y_Position(a2),d0
		addq	#8,d0
		bpl.s	.okY
		neg	d0
.okY		cmp	#70,d0
		bhs.s	.Ende
		*--*>Init_Flatter ?!
		jsr	Get_Zuffi_d0
		and	#31,d0
		bne.s	.Ende
		*--*>NOW INIT
		move.b	#-1,Fl_Time(a4)
		move.b	#FL_FLY,Fl_Rout(a4)
		move.l	#Fleder_Fly_Anim,Bob_Next_Anim(a4)
		move.b	#2,Fl_Max_Speed_X(a4)
		move.b	#2,Fl_Max_Speed_Y(a4)
		clr.w	Fl_Speed_X(a4)
		clr.w	Fl_Speed_Y(a4)
		move.b	d7,Fl_X_Dir(a4)
		move.b	#1,Fl_Y_Dir(a4)
		IFEQ	SOUNDFX
		moveq	#14,d0
		jsr	TFMX+16
		ENDC

.Ende		*--*>Make Timet Test Hit
		jsr	Test_TEMET_Hit
		rts
*-------------------------------------------------------------------------------------
Test_TIMET_HitBob	*--*>Test Kollision
		lea	(a6),a2
		jsr	KollTopBobTest
		tst	d7
		bmi 	.NoKollFl
		;--Kollision On
		lea	(a6),a2
		jsr	Make_Bump
		*--*>out fleder
		moveq	#8,d3
		moveq	#4,d4
		jsr	ENTER_SMOKE_X_Offs
		moveq	#8,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_Y_Offs
		jsr	Out_Bob_Damage
		IFEQ	SOUNDFX
		moveq	#11,d0
		jsr	TFMX+16
		ENDC

.NoKollFl		rts
**************************************************************************************
*-------------------------------------------------------------------------------------
*--------------	STONE
*-------------------------------------------------------------------------------------
**************************************************************************************
E_Stone_Release_Cnt	=Bob_Special_1	;B
E_Stone_Timer	=Bob_Special_1+1	;B
*-------------------------------------------------------------------------------------
STONE_EFF_Rout:	*--*>Stone Eff
		jsr	Test_Bob_Out
		tst.b	E_Stone_Release_Cnt(a4)
		bne.s	.make_Init_Stones
		tst	Falle_2_Set(a6)
		beq.s	.NoInit
		*--*>Init Falling Stones
		clr.w	Falle_2_Set(a6)
		move.b	#1,E_Stone_Release_Cnt(a4)
.NoInit		*--*>NoInit
		rts
.make_Init_Stones	*---*>INIT STONES
		subq.b	#1,E_Stone_Timer(a4)
		bpl.s	.NoInit
.Init_Stone		*--*>INIT STONES
		move.b	#70,E_Stone_Timer(a4)
		addq.b	#1,E_Stone_Release_Cnt(a4)
		cmp.b	#4,E_Stone_Release_Cnt(a4)
		bne.s	.NoReady
		clr.b	E_Stone_Release_Cnt(a4)
		clr.b	E_Stone_Timer(a4)
.NoReady		*--*>CalcYPos
		move	Scr_Y_Level_Pos(a6),d2
		sub	#32,d2
		move	d2,d3
		sub	Bob_Y_Position(a4),d3
		bpl.s	.Ok
		neg	d3
		cmp	#6*16,d3
		bhs.s	.NoInit
.Ok		move	Bob_X_Position(a4),d1
		move	#SI_STONE,d0
		lea	Area_Enter_Vector(a6),a1
		jsr	Search_Bob_Entry
		rts

*-------------------------------------------------------------------------------------
STONE_Rout1_InitI:	*--*>Init Stone Alone
		jsr	Search_Stone_Entry
		move.l	#STONE_Speed,Bob_Routine(a4)
		jsr	Init_Stone_VVals_I
		rts
*-------------------------------------------------------------------------------------
Init_Stone_VVals_I	*--*>Init Stone Various Vals
		move.l	#Show_InkaObject,Stone_Show_Rout(a4)
		move.l	#ISTONE_Wait_Anm,Stone_Wait_Anm(a4)
		move.l	#ISTONE_Left_Anm,Stone_Left_Anm(a4)
		move.l	#ISTONE_Right_Anm,Stone_Right_Anm(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ISTONE_Wait_Anm:	dc.w	0
		dc.l	IStone_Obj0,0
		dc.w	ENTRY_END
		dc.l	ISTONE_Wait_Anm
ISTONE_Left_Anm:	dc.w	0
		dc.l	IStone_Obj0,0
		dc.w	0
		dc.l	IStone_Obj1,0
		dc.w	1
		dc.l	IStone_Obj0,0
		dc.w	1
		dc.l	IStone_Obj1,0
		dc.w	ENTRY_END
		dc.l	ISTONE_Left_Anm
ISTONE_Right_Anm:	dc.w	1
		dc.l	IStone_Obj1,0
		dc.w	1
		dc.l	IStone_Obj0,0
		dc.w	0
		dc.l	IStone_Obj1,0
		dc.w	0
		dc.l	IStone_Obj0,0
		dc.w	ENTRY_END
		dc.l	ISTONE_Right_Anm
**************************************************************************************
*-------------------------------------------------------------------------------------
*------------------	INKA DOOR
*-------------------------------------------------------------------------------------
**************************************************************************************
INKA_Door_Anim_Tab	dc.l	IDoor_Anim_Norm,IDoor_Anim_Small,IDoor_Obj2
		dc.w	Inka_EnemyVRam/32

ITest_Init_Doors:	*--*>Init Water Dingens
		move.l	#INKA_Door_Anim_Tab,Door_Anims(a4)
		move.l	#Test_Init_Doors,Bob_Routine(a4)
		move.l	#Show_InkaObject,Door_Show_Rout(a4)
		rts
*-------------------------------------------------------------------------------------
IDoor_Anim_Norm:	dc.w	0
		dc.l	IDoor_Obj0,0
		dc.w	ENTRY_END
		dc.l	IDoor_Anim_Norm
IDoor_Anim_Small:	dc.w	0
		dc.l	IDoor_Obj1,32
		dc.w	ENTRY_END
		dc.l	IDoor_Anim_Small

**************************************************************************************
*-------------------------------------------------------------------------------------
*------------------	INKA SPEER
*-------------------------------------------------------------------------------------
**************************************************************************************
Speer_Up_Anim:	dc.w	0
		dc.l	ISpeer_Obj0,0
		dc.w	ENTRY_END
		dc.l	Speer_Up_Anim
Speer_Down_Anim:	dc.w	0
		dc.l	ISpeer_Obj2,0
		dc.w	ENTRY_END
		dc.l	Speer_Down_Anim
Speer_Right_Anim:	dc.w	1
		dc.l	ISpeer_Obj1,0
		dc.w	ENTRY_END
		dc.l	Speer_Right_Anim
Speer_Left_Anim:	dc.w	0
		dc.l	ISpeer_Obj1,0
		dc.w	ENTRY_END
		dc.l	Speer_Left_Anim
*-------------------------------------------------------------------------------------
SPEER_X_Save_Pos	=Bob_Special_1	;W
SPEER_Y_Save_Pos	=Bob_Special_2	;W
SPEER_Rout		=Bob_Special_3	;LW (3,4)
Speer_Pos		=Bob_Koords_Save1	;LW
Speer_Speed		=Bob_Koords_Save2	;LW
SPEER_Time		=Bob_Hit		;W
*-------------------------------------------------------------------------------------
I_Global_Speer:	*--*>Test Init
		moveq	#0,d7
		and	#$fff0,Bob_X_Position(a4)
		and	#$fff0,Bob_Y_Position(a4)
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		jsr	Get_Block_Flags
		swap	d0
		btst	#ELEVATORBIT,d0
		beq.s	.No_Fly
		moveq	#1,d7
.No_Fly		rts
*-------------------------------------------------------------------------------------
I_Speer_Right:	*--*>Testen ob fliegen oder auf But Warten
		move.l	#$00010000,Speer_Speed(a4)
		jsr	I_Global_Speer
		tst	d7
		bpl.s	.Init_Fly
		*--*>Init Wait Falle Speer
		move	#250,SPEER_Time(a4)
		move	Scr_X_Level_Pos(a6),SPEER_X_Save_Pos(a4)
		move	Scr_Y_Level_Pos(a6),SPEER_Y_Save_Pos(a4)
		move.l	#SPEER_FLY_RIGHT,SPEER_Rout(a4)
		move.l	#Tst_Speer_Falle,Bob_Routine(a4)
		rts
.Init_Fly		*--*>Gleich fliegen ? Koords Checken
		lea	(a6),a2
		move	TEMET_X_Position(a2),d0
		sub	Bob_X_Position(a4),d0
		subq	#8,d0	;Ausgleich fr Mitten
		bpl.s	.InitReal
		*--Austragen
		jsr	Out_Bob
		rts
.InitReal		*--*>Init Real Flight
		move.l	#SPEER_FLY_RIGHT,Bob_Routine(a4)
		IFEQ	SOUNDFX
		moveq	#36,d0
		jsr	TFMX+16
		ENDC
		rts
*-------------------------------------------------------------------------------------
I_Speer_Left:	*--*>Testen ob fliegen oder auf But Warten
		move.l	#$00010000,Speer_Speed(a4)
		jsr	I_Global_Speer
		tst	d7
		bpl.s	.Init_Fly
		*--*>Init Wait Falle Speer
		move	#250,SPEER_Time(a4)
		move	Scr_X_Level_Pos(a6),SPEER_X_Save_Pos(a4)
		move	Scr_Y_Level_Pos(a6),SPEER_Y_Save_Pos(a4)
		move.l	#SPEER_FLY_LEFT,SPEER_Rout(a4)
		move.l	#Tst_Speer_Falle,Bob_Routine(a4)
		rts
.Init_Fly		*--*>Gleich fliegen ? Koords Checken
		lea	(a6),a2
		move	TEMET_X_Position(a2),d0
		sub	Bob_X_Position(a4),d0
		subq	#8,d0	;Ausgleich fr Mitten
		bmi.s	.InitReal
		*--Austragen
		jsr	Out_Bob
		rts
.InitReal		*--*>Init Real Flight
		move.l	#SPEER_FLY_LEFT,Bob_Routine(a4)
		IFEQ	SOUNDFX
		moveq	#36,d0
		jsr	TFMX+16
		ENDC
		rts
*-------------------------------------------------------------------------------------
I_Speer_Up:		*--*>Testen ob fliegen oder auf But Warten
		move.l	#$00010000,Speer_Speed(a4)
		jsr	I_Global_Speer
		tst	d7
		bpl.s	.Init_Fly
		*--*>Init Wait Falle Speer
		move	#250,SPEER_Time(a4)
		move	Scr_X_Level_Pos(a6),SPEER_X_Save_Pos(a4)
		move	Scr_Y_Level_Pos(a6),SPEER_Y_Save_Pos(a4)
		move.l	#SPEER_FLY_UP,SPEER_Rout(a4)
		move.l	#Tst_Speer_Falle,Bob_Routine(a4)
		rts
.Init_Fly		*--*>Gleich fliegen ? Koords Checken
		lea	(a6),a2
		move	TEMET_Y_Position(a2),d0
		sub	Bob_Y_Position(a4),d0
		bmi.s	.InitReal
		*--Austragen
		jsr	Out_Bob
		rts
.InitReal		*--*>Init Real Flight
		move.l	#SPEER_FLY_UP,Bob_Routine(a4)
		IFEQ	SOUNDFX
		moveq	#36,d0
		jsr	TFMX+16
		ENDC
		rts
*-------------------------------------------------------------------------------------
I_Speer_Down:	*--*>Testen ob fliegen oder auf But Warten
		move.l	#$00010000,Speer_Speed(a4)
		jsr	I_Global_Speer
		tst	d7
		bpl.s	.Init_Fly
		*--*>Init Wait Falle Speer
		move	#250,SPEER_Time(a4)
		move	Scr_X_Level_Pos(a6),SPEER_X_Save_Pos(a4)
		move	Scr_Y_Level_Pos(a6),SPEER_Y_Save_Pos(a4)
		move.l	#SPEER_FLY_DOWN,SPEER_Rout(a4)
		move.l	#Tst_Speer_Falle,Bob_Routine(a4)
		rts
.Init_Fly		*--*>Gleich fliegen ? Koords Checken
		lea	(a6),a2
		move	TEMET_Y_Position(a2),d0
		sub	Bob_Y_Position(a4),d0
		bpl.s	.InitReal
		*--Austragen
		jsr	Out_Bob
		rts
.InitReal		*--*>Init Real Flight
		move.l	#SPEER_FLY_DOWN,Bob_Routine(a4)
		IFEQ	SOUNDFX
		moveq	#36,d0
		jsr	TFMX+16
		ENDC
		rts
*-------------------------------------------------------------------------------------
SPEERSPEED_X	=4
SPEERSPEED_Y	=3
*-------------------------------------------------------------------------------------
Tst_Speer_Falle:	*--*>Test if Falle is Activated
		tst	Falle_1_Set(a6)
		bne.s	.Init_Speer
		subq	#1,SPEER_Time(a4)
		bne.s	.Ende
		*--*>Test ENde Speer
		move	Scr_X_Level_Pos(a6),d0
		sub	SPEER_X_Save_Pos(a4),d0
		bpl.s	.okXpos
		neg	d0
.okXpos		cmp	#160,d0
		bhs.s	.OutSpeer
		move	Scr_Y_Level_Pos(a6),d0
		sub	SPEER_Y_Save_Pos(a4),d0
		bpl.s	.okYpos
		neg	d0
.okYpos		cmp	#160,d0
		bhs.s	.OutSpeer
		*--*>In Speer Again
		move	#150,SPEER_Time(a4)
.Ende		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.Init_Speer		*--*>Init Speer Rout
		move.l	SPEER_Rout(a4),Bob_Routine(a4)
		move	#-1,SPEER_Time(a4)
		IFEQ	SOUNDFX
		moveq	#36,d0
		jsr	TFMX+16
		ENDC
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
.OutSpeer		*--*>Speer Raus
		jsr	Out_Bob
		rts
*-------------------------------------------------------------------------------------
SPEER_FLY_RIGHT:	*--*>Fly_Right
		jsr	Show_InkaObject
		tst	SPEER_Time(a4)
		bpl.s	.OkTime
		clr.w	SPEER_Time(a4)
		move	Scr_X_Level_Pos(a6),Bob_X_Position(a4)
		sub	#48,Bob_X_Position(a4)
.OkTime		jsr	Test_Bob_Out
		cmp.b	#BOB_FALSE,Bob_Used(a4)
		bne.s	.No_Clr_Flag
		clr.w	Falle_1_Set(a6)
.No_Clr_Flag	jsr	Test_TEMET_Hit_St
		jsr	Test_T_Hit_Speer_X
		move	Bob_X_Position(a4),Speer_Pos(a4)
		move.l	Speer_Speed(a4),d0
		add.l	d0,Speer_Pos(a4)
		move	Speer_Pos(a4),Bob_X_Position(a4)
		add.l	#$00001800,Speer_Speed(a4)
		rts
*-------------------------------------------------------------------------------------
SPEER_FLY_LEFT	*--*>Fly_Left
		jsr	Show_InkaObject
		tst	SPEER_Time(a4)
		bpl.s	.OkTime
		clr.w	SPEER_Time(a4)
		move	Scr_X_Level_Pos(a6),Bob_X_Position(a4)
		add	#320,Bob_X_Position(a4)
.OkTime		jsr	Test_Bob_Out
		cmp.b	#BOB_FALSE,Bob_Used(a4)
		bne.s	.No_Clr_Flag
		clr.w	Falle_1_Set(a6)
.No_Clr_Flag	jsr	Test_TEMET_Hit_St
		jsr	Test_T_Hit_Speer_X
		move	Bob_X_Position(a4),Speer_Pos(a4)
		move.l	Speer_Speed(a4),d0
		sub.l	d0,Speer_Pos(a4)
		move	Speer_Pos(a4),Bob_X_Position(a4)
		add.l	#$00001800,Speer_Speed(a4)
		rts
*-------------------------------------------------------------------------------------
SPEER_FLY_UP	*--*>Fly_Up
		jsr	Show_InkaObject
		tst	SPEER_Time(a4)
		bpl.s	.OkTime
		clr.w	SPEER_Time(a4)
		move	Scr_Y_Level_Pos(a6),Bob_Y_Position(a4)
		add	#208,Bob_Y_Position(a4)
.OkTime		jsr	Test_Bob_Out
		cmp.b	#BOB_FALSE,Bob_Used(a4)
		bne.s	.No_Clr_Flag
		clr.w	Falle_1_Set(a6)
.No_Clr_Flag	jsr	Test_TEMET_Hit_St
		jsr	Test_T_Hit_Speer_Y
		move	Bob_Y_Position(a4),Speer_Pos(a4)
		move.l	Speer_Speed(a4),d0
		sub.l	d0,Speer_Pos(a4)
		move	Speer_Pos(a4),Bob_Y_Position(a4)
		add.l	#$00001200,Speer_Speed(a4)
		rts
*-------------------------------------------------------------------------------------
SPEER_FLY_DOWN	*--*>Fly_Up
		jsr	Show_InkaObject
		tst	SPEER_Time(a4)
		bpl.s	.OkTime
		clr.w	SPEER_Time(a4)
		move	Scr_Y_Level_Pos(a6),Bob_Y_Position(a4)
		sub	#48,Bob_Y_Position(a4)
.OkTime		jsr	Test_Bob_Out
		cmp.b	#BOB_FALSE,Bob_Used(a4)
		bne.s	.No_Clr_Flag
		clr.w	Falle_1_Set(a6)
.No_Clr_Flag	jsr	Test_TEMET_Hit_St
		jsr	Test_T_Hit_Speer_Y
		move	Bob_Y_Position(a4),Speer_Pos(a4)
		move.l	Speer_Speed(a4),d0
		add.l	d0,Speer_Pos(a4)
		move	Speer_Pos(a4),Bob_Y_Position(a4)
		add.l	#$00001200,Speer_Speed(a4)
		rts
*-------------------------------------------------------------------------------------
Test_T_Hit_Speer_X	*--*>TIMET Hit SPEER
		lea	(a6),a2
		jsr	KollTopBobTest
		tst	d7
		bmi	.NoKoll
		*--Kollision ! Test if Flyer should explode
		lea	(a6),a2
		jsr	Make_Bump
		moveq	#8,d3
		moveq	#0,d4
		jsr	ENTER_SMOKE_X_Offs
		jsr	Out_Bob_Damage
		IFEQ	SOUNDFX
		moveq	#9,d0
		jsr	TFMX+16
		ENDC
.NoKoll		rts
*-------------------------------------------------------------------------------------
Test_T_Hit_Speer_Y	*--*>TIMET Hit SPEER
		lea	(a6),a2
		jsr	KollTopBobTest
		tst	d7
		bmi	.NoKoll
		cmp	#3,TEMET_Shield_Flag(a2)
		bne	.NoKoll
		*--Kollision ! Test if Flyer should explode
		lea	(a6),a2
		jsr	Make_Bump
		moveq	#0,d3
		moveq	#8,d4
		jsr	ENTER_SMOKE_Y_Offs
		jsr	Out_Bob_Damage
		IFEQ	SOUNDFX
		moveq	#9,d0
		jsr	TFMX+16
		ENDC
.NoKoll		rts
**************************************************************************************
*-------------------------------------------------------------------------------------
*---------------	LAMPE INFO
*-------------------------------------------------------------------------------------
**************************************************************************************
Init_Lamp:		*--*>Init Lamp
		and	#$fff0,Bob_X_Position(a4)
		move.l	#ILamp_Rout,Bob_Routine(a4)
		rts
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
ILamp_Rout:		*--*>Handle Lamp
		jsr	Standart_BobAnim
		jsr	Test_Bob_Out
		jsr	Show_InkaObject
		rts
*---------------------------------------------------------------------------
Lamp_Anim:		dc.w	0
		dc.l	ITorch_Obj0,0
		dc.w	0
		dc.l	ITorch_Obj1,0
		dc.w	0
		dc.l	ITorch_Obj2,0
		dc.w	0
		dc.l	ITorch_Obj3,0
		dc.w	ENTRY_END
		dc.l	Lamp_Anim
**************************************************************************************
*-------------------------------------------------------------------------------------
*------------------	BUTTON
*-------------------------------------------------------------------------------------
**************************************************************************************
*-------------------------------------------------------------------------------------
II_Button_Door_Up:	*--*>Init Button
		and	#$fff0,Bob_Y_Position(a4)
		move.l	#Show_InkaObject,Button_Display(a4)
		move.l	#I_Gl_Door_Up,Button_Routine(a4)
		move.l	#Gl_Button,Bob_Routine(a4)
		move.l	#InButton_PressAnimTab,Button_Work_Anim(a4)
		move.l	#But_Clear_Door_Up,Button_Out_Rout(a4)
		rts
*-------------------------------------------------------------------------------------
II_Button_Falle_1:	*--*>Init Button
		and	#$fff0,Bob_Y_Position(a4)
		move.l	#Show_InkaObject,Button_Display(a4)
		move.l	#I_Falle_1_Ausl,Button_Routine(a4)
		move.l	#Gl_Button,Bob_Routine(a4)
		move.l	#InButton_PressAnimTab,Button_Work_Anim(a4)
		move.l	#Falle_1_Ausl_Clr,Button_Out_Rout(a4)
		rts
*-------------------------------------------------------------------------------------
II_Button_Falle_2:	*--*>Init Button
		and	#$fff0,Bob_Y_Position(a4)
		move.l	#Show_InkaObject,Button_Display(a4)
		move.l	#I_Falle_2_Ausl,Button_Routine(a4)
		move.l	#Gl_Button,Bob_Routine(a4)
		move.l	#InButton_PressAnimTab,Button_Work_Anim(a4)
		move.l	#Falle_2_Ausl_Clr,Button_Out_Rout(a4)
		rts
*-------------------------------------------------------------------------------------
*-------------------------------------------------------------------------------------
InButton_Wait_AnimTab:	dc.w	0
		dc.l	ISwitch_Obj0,0
		dc.w	ENTRY_END
		dc.l	InButton_Wait_AnimTab
InButton_PressAnimTab:	dc.w	0
		dc.l	ISwitch_Obj0,8
		dc.w	0
		dc.l	ISwitch_Obj0,8
		dc.w	ENTRY_END
		dc.l	InButton_Wait_AnimTab

**************************************************************************************
*-------------------------------------------------------------------------------------
*-------------	FALLEN AUSLSER
*-------------------------------------------------------------------------------------
**************************************************************************************
Ausl_Time		=Bob_Special_1	;B
Ausl_Ausl		=Bob_Special_2	;B
*-------------------------------------------------------------------------------------
I_Auslser_Rout:	*--*>Init Auslser
		move.b	#16,Ausl_Time(a4)
		move.l	#Auslser_Rout,Bob_Routine(a4)
		rts
*-------------------------------------------------------------------------------------
Auslser_Rout:	*--*>Test If Auslser has ausgelst
		tst.b	Ausl_Ausl(a4)
		beq.s	.NoClear
		*--*>Clear
		clr.b	Ausl_Ausl(a4)
		clr.w	Falle_1_Set(a6)
		clr.w	Falle_2_Set(a6)
.NoClear		*--*>Init Auslser Routine
		jsr	Test_Bob_Out
		subq.b	#1,Ausl_Time(a4)
		beq.s	.MakeBlit
.NoBlit		*--*>BlitOff
		jsr	Test_Hit
.MakeBlit		rts
*-------------------------------------------------------------------------------------
Test_Hit:		*--Init Vals
		lea	(a6),a2
		*--Test_X
        		move	TEMET_X_Koll_AnfPos(a2),d0
		sub	Bob_X_Position(a4),d0
		tst	d0
		bpl.s	.EnemyLeft
.EnemyRight		moveq	#1,d3
		add	TEMET_X_Koll_Width(a2),d0
		tst	d0
		bmi	.NoKoll
		bra.s	.Test_Y
.EnemyLeft		moveq	#-1,d3
		sub	#16,d0
		tst	d0
		bpl	.NoKoll
.Test_Y		*--Test_Y
		move	TEMET_Y_Koll_AnfPos(a2),d0
		sub	Bob_Y_Position(a4),d0
		tst	d0
		bpl.s	.EnemyUp
.EnemyDown		moveq	#1,d4
		add	TEMET_Y_Koll_Height(a2),d0
		tst	d0
		bmi	.NoKoll
		bra.s	.Koll
.EnemyUp		moveq	#-1,d4
		sub	#96,d0
		tst	d0
		bpl	.NoKoll
.Koll		*--*>MAKE KOLL
		move.b	#1,Ausl_Ausl(a4)
		move	#1,Falle_1_Set(a6)
		move	#1,Falle_2_Set(a6)
.NoKoll		rts
**************************************************************************************
*-------------------------------------------------------------------------------------
*---------------	LAVA MOVING
*-------------------------------------------------------------------------------------
**************************************************************************************
I_LAVA_UP:		*--*>Init The Ctrl Bob
		move.l	Last_LAVA_Move_Eff(a6),a0
		cmp.l	Bob_Entry_Adress(a4),a0
		bne.s	.Continue
		jsr	Out_Bob
		rts
.Continue		tst	LAVA_Moves(a6)
		bne.s	.Ende
		move	#1,LAVA_Moves(a6)
		move.l	#Make_LAVA_UP_EFF,Bob_Routine(a4)
		move.l	Bob_Entry_Adress(a4),Last_LAVA_Move_Eff(a6)
		and	#$fff0,Bob_X_Position(a4)
.Ende		rts
*-------------------------------------------------------------------------------------
I_LAVA_DOWN:	*--*>Init The Ctrl Bob
		move.l	Last_LAVA_Move_Eff(a6),a0
		cmp.l	Bob_Entry_Adress(a4),a0
		bne.s	.Continue
		jsr	Out_Bob
		rts
.Continue		tst	LAVA_Moves(a6)
		bne.s	.Ende
		move	#1,LAVA_Moves(a6)
		move.l	#Make_LAVA_DOWN_EFF,Bob_Routine(a4)
		move.l	Bob_Entry_Adress(a4),Last_LAVA_Move_Eff(a6)
		and	#$fff0,Bob_X_Position(a4)
.Ende		rts
*-------------------------------------------------------------------------------------
Make_LAVA_UP_EFF:	*--*>Make LAVA Up
		subq	#1,LAVABase(a6)
		move	LAVABase(a6),d1
		and	#$f,d1
		bne.s	.Ende
		move	Bob_X_Position(a4),d0
		move	LAVABase(a6),d1
		jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_EFFECT_BIT,d0
		beq.s	.Ende
		*--*>Out This
		jsr	Out_Bob
		clr.w	LAVA_Moves(a6)
.Ende		rts
*-------------------------------------------------------------------------------------
Make_LAVA_DOWN_EFF:	*--*>Make LAVA Up
		addq	#1,LAVABase(a6)
		move	LAVABase(a6),d1
		and	#$f,d1
		bne.s	.Ende
		move	Bob_X_Position(a4),d0
		move	LAVABase(a6),d1
		jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_EFFECT_BIT,d0
		beq.s	.Ende
		*--*>Out This
		jsr	Out_Bob
		clr.w	LAVA_Moves(a6)
.Ende		rts
**************************************************************************************
*-------------------------------------------------------------------------------------
*------------------	INKA	HUHN
*-------------------------------------------------------------------------------------
**************************************************************************************
IHuhn_Anim_Adrs	dc.l	IHuhn_FL_Anm,IHuhn_FR_Anm
		dc.l	IHuhn_Anm_Left,IHuhn_Anm_Right
		dc.l	IHuhn_Anm_Left,IHuhn_Anm_Right
		dc.l	IChick_Obj2,IChick_Obj1
		dc.w	Inka_EnemyVRam/32
		dc.l	RoutRts
		dc.l	IHuhn_Anm_Left,IHuhn_Anm_Right
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IHuhn_Anm_Right:	dc.w	0
		dc.l	IChick_Obj0,0
		dc.w	ENTRY_END
		dc.l	IHuhn_Anm_Right
IHuhn_Anm_Left:	dc.w	1
		dc.l	IChick_Obj0,0
		dc.w	ENTRY_END
		dc.l	IHuhn_Anm_Left
*- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
IHuhn_FR_Anm:	dc.w	0
		dc.l	IChick_Obj3
		dc.w	0,0
		dc.w	0
		dc.l	IChick_Obj4
		dc.w	0,-2
		dc.w	0
		dc.l	IChick_Obj4
		dc.w	0,-4
		dc.w	0
		dc.l	IChick_Obj4
		dc.w	0,-6
		dc.w	0
		dc.l	IChick_Obj4
		dc.w	0,-7
		dc.w	0
		dc.l	IChick_Obj4
		dc.w	0,-8
		dc.w	0
		dc.l	IChick_Obj4
		dc.w	0,-9
		dc.w	0
		dc.l	IChick_Obj3
		dc.w	0,-9
		dc.w	0
		dc.l	IChick_Obj3
		dc.w	0,-8
		dc.w	0
		dc.l	IChick_Obj3
		dc.w	0,-7
		dc.w	0
		dc.l	IChick_Obj3
		dc.w	0,-6
		dc.w	0
		dc.l	IChick_Obj3
		dc.w	0,-4
		dc.w	0
		dc.l	IChick_Obj3
		dc.w	0,-2
		dc.w	0
		dc.l	IChick_Obj3
		dc.w	0,-1
		dc.w	ENTRY_END
		dc.l	IHuhn_FR_Anm
IHuhn_FL_Anm	dc.w	1
		dc.l	IChick_Obj3
		dc.w	0,0
		dc.w	1
		dc.l	IChick_Obj4
		dc.w	0,-2
		dc.w	1
		dc.l	IChick_Obj4
		dc.w	0,-4
		dc.w	1
		dc.l	IChick_Obj4
		dc.w	0,-6
		dc.w	1
		dc.l	IChick_Obj4
		dc.w	0,-7
		dc.w	1
		dc.l	IChick_Obj4
		dc.w	0,-8
		dc.w	1
		dc.l	IChick_Obj4
		dc.w	0,-9
		dc.w	1
		dc.l	IChick_Obj3
		dc.w	0,-9
		dc.w	1
		dc.l	IChick_Obj3
		dc.w	0,-8
		dc.w	1
		dc.l	IChick_Obj3
		dc.w	0,-7
		dc.w	1
		dc.l	IChick_Obj3
		dc.w	0,-6
		dc.w	1
		dc.l	IChick_Obj3
		dc.w	0,-4
		dc.w	1
		dc.l	IChick_Obj3
		dc.w	0,-2
		dc.w	1
		dc.l	IChick_Obj3
		dc.w	0,-1
		dc.w	ENTRY_END
		dc.l	IHuhn_FL_Anm
IHuhn_LP		dc.w	1
		dc.l	IChick_Obj4
		dc.w	0,0
		dc.w	1
		dc.l	IChick_Obj3
		dc.w	0,0
		dc.w	ENTRY_END
		dc.l	IHuhn_LP
IHuhn_RP		dc.w	0
		dc.l	IChick_Obj4
		dc.w	0,0
		dc.w	0
		dc.l	IChick_Obj3
		dc.w	0,0
		dc.w	ENTRY_END
		dc.l	IHuhn_RP
*-------------------------------------------------------------------------------------
IHuhn_Init		*--*>Init Anim Informations
		sub	#16,Bob_X_Position(a4)
		move.l	#IHuhn_Anim_Adrs,Huhn_Anim_Adrs(a4)
		move.l	#Show_InkaObject,WHuhn_Show_Rout(a4)
		add	#10,Bob_Y_Position(a4)
		;move.l	#Conv_Huhn_SkelI,Huhn_Conv_RoutI(a4)
		move.l	#Out_Bob,Huhn_Conv_RoutI(a4)
		move.l	#THuhn_Jump_I,Huhn_Conv_RoutI(a4)
		jmp	Huhn_Init
**************************************************************************************
*-------------------------------------------------------------------------------------
*-----------------	HANDLE SEILBAHN
*-------------------------------------------------------------------------------------
**************************************************************************************
Seilbahn_Anim:	dc.w	0
		dc.l	IHandle_Obj0,0
		dc.w	0
		dc.l	IHandle_Obj1,0
		dc.w	ENTRY_END
		dc.l	Seilbahn_Anim
*-------------------------------------------------------------------------------------
Seilbahn_Temet_On	=Bob_Special_1	;B
Seilbahn_Last_X	=Bob_Special_1	;W
Seilbahn_Last_Y	=Bob_Special_2	;W
Seilbahn_Last_Proz	=Bob_Special_3	;W
Seilbahn_Speed_Ges	=Bob_Koords_Save1	;W
Seilbahn_Speed_X	=Bob_Koords_Save1+2	;W
Seilbahn_X_Pos_Rest	=Bob_Koords_Save2	;LW
Seilbahn_Blink	=Bob_Hit		;W
*-------------------------------------------------------------------------------------
Handle_Seilbahn	*--*>Standart_Routs
		jsr	Show_InkaObject

		tst.b	Dead(a6)
		beq.s	.OKAY
		clr.b	Seilbahn_Temet_On(a4)
.OKAY

		tst.b	Seilbahn_Temet_On(a4)
		bpl.s	.OKPos
		addq.b	#1,Seilbahn_Temet_On(a4)	;Neg, da Timet nicht gleich wieder kollidieren darf
.OKPos		tst.b	Seilbahn_Temet_On(a4)
		beq.s	.Blink
		move.l	#Seilbahn_Anim,Bob_Next_Anim(a4)
.Blink		jsr	Standart_BobAnim
		jsr	Test_Bob_Out
		*--*>Mu Kolli Geteste werden
		tst.b	Seilbahn_Temet_On(a4)
		bmi.s	.NoOffTEst
		bne.s	.NoKolliTest
		jsr	Test_Temet_On
		tst.b	Dead(a6)
		beq.s	.OKAY1
		clr.b	Seilbahn_Temet_On(a4)
.OKAY1
		bra	.NoOffTEst
.NoKolliTest	*--*>TEST TEMET OFF
		tst	GlobalJoyFire(a6)
		beq.s	.NoOffTEst
		*--*>Temet Off
		move.b	#-6,Seilbahn_Temet_On(a4)
		lea	(a6),a2
		move	#$0-$0780,TEMET_Speed_Y(a2)
		move	Seilbahn_Speed_X(a4),TEMET_Speed_X(a2)
		move	#NORMAL,TEMET_Status(a2)

.NoOffTEst	*--*>MAKE Seilbahn_Work
		move	#$0005,d0
		tst.b	Seilbahn_Temet_On(a4)
		bne.s	.NoBiggerBrems
		move	#$0034,d0
.NoBiggerBrems	*--*>Luftwiederstand
		tst	Seilbahn_Speed_Ges(a4)
		beq.s	.Zero
		bpl.s	.SubBrems
.AddBrems		*--*>Seilbahn Speed adden
		add	d0,Seilbahn_Speed_Ges(a4)
		bmi.s	.NoZero
		clr.w	Seilbahn_Speed_Ges(a4)
		bra.s	.Zero
.SubBrems		*--*>Seilbahn Speed subben
		sub	d0,Seilbahn_Speed_Ges(a4)
		bpl.s	.NoZero
		clr.w	Seilbahn_Speed_Ges(a4)
.NoZero
.Zero		*--*>Nicht dranhngen
		*--*>Beschleunigung wegen Seil machen !
		move	Bob_X_Position(a4),d0
		addq	#8,d0
		move	Bob_Y_Position(a4),d1
		jsr	Get_Block_Icon
		sub	#7*20+1,d0
		bmi	.Illegal
		cmp	#15,d0
		bhs	.Illegal
		*--*>Get Table with Values
		lea	Seilbahn_Vals,a0
		move	d0,d1
		mulu	#SB_SIZE,d1
		add	d1,a0

		*--*>Test Temet On
		tst.b	Seilbahn_Temet_On(a4)
		bmi	.SlowDown
		beq	.SlowDown

		*--*>GERADE ??
		tst.b	SB_DIR(a0)
		beq.s	.NoSpeedAdd
		*--*>Get Speed
		move.b	SB_SPEED(a0),d1
		ext.w	d1
.OkSBSpos		tst.b	SB_DIR(a0)
		bpl.s	.ADDSpeed
.SUBSpeed		*--*>Steigung RUNTER
		sub	d1,Seilbahn_Speed_Ges(a4)
		bra.s	.NoSpeedAdd
.ADDSpeed		*--*>Steigung runter
		add	d1,Seilbahn_Speed_Ges(a4)
.NoSpeedAdd		*--*>Speed_Aufteilen
.SlowDown		lea	(a6),a2
		move	Seilbahn_Speed_Ges(a4),d0
		move	SB_X_PROZ(a0),d1
		move	d1,Seilbahn_Last_Proz(a4)
		muls	d1,d0
		divs	#100,d0

		*--*>CHeck Xspeed to big
		move	d0,d1
		bpl.s	.Okposd1
		neg	d1
.Okposd1		cmp	#$0800,d1
		bls.s	.OKSpeed
		move	#$0800,d1
		tst	d0
		bpl.s	.Okpos1
		neg	d1
.Okpos1		move	d1,d0
		move	d0,Seilbahn_Speed_X(a4)

		*--*>CHeck gesamtspeed to big
		move	Seilbahn_Speed_Ges(a4),d0
		move	d0,d1
		bpl.s	.Okposg1
		neg	d1
.Okposg1		cmp	#$0800,d1
		bls.s	.OKSpeed
		move	#$0800,d1
		tst	d0
		bpl.s	.Okpos3
		neg	d1
.Okpos3		move	d1,d0
		move	d0,Seilbahn_Speed_Ges(a4)
		bra.s	.NI
.OKSpeed		move	d0,Seilbahn_Speed_X(a4)
.NI		move	Bob_X_Position(a4),Seilbahn_X_Pos_Rest(a4)
		*--*>Make X Speed
		move.b	Seilbahn_Speed_X(a4),d0
		ext.w	d0
		swap	d0
		move.b	Seilbahn_Speed_X+1(a4),d0
		lsl	#8,d0
		add.l	d0,Seilbahn_X_Pos_Rest(a4)
		move	Seilbahn_X_Pos_Rest(a4),Bob_X_Position(a4)
		*--*>Make Positions
		jsr	Make_Seil_Pos
		tst	d7
		bpl.s	.OKd7
		*--*>Seilrunter
		*--*>Temet Off
		lea	(a6),a2
		move	#$0-$0500,TEMET_Speed_Y(a2)
		move	Seilbahn_Speed_X(a4),TEMET_Speed_X(a2)
		move	#NORMAL,TEMET_Status(a2)
		moveq	#-16,d3
		moveq	#0,d4
		jsr	ENTER_SMOKE_Y_Offs
		jsr	Out_Bob
		rts

.OKd7		*--*>Test Temet On
		tst.b	Seilbahn_Temet_On(a4)
		bmi	.Ende
		beq	.Ende
		jsr	Set_TEMET_To_Pos		
		rts
.Illegal		*--*>RunterfallenRout
		****
.Ende		rts
*-------------------------------------------------------------------------------------
Make_Seil_Pos	*--*>Seilbahn Positions
		and	#$fff0,Bob_Y_Position(a4)
		move	Bob_X_Position(a4),d0
		addq	#8,d0
		move	Bob_Y_Position(a4),d1
		jsr	Get_Block_Icon
		sub	#7*20+1,d0
		bmi.s	.CHECK_UP
		cmp	#15,d0
		bhs.s	.CHECK_UP
		bra.s	.Make_Pos
.CHECK_UP		*--*>Check Upper Dings
		sub	#16,Bob_Y_Position(a4)
		move	Bob_X_Position(a4),d0
		addq	#8,d0
		move	Bob_Y_Position(a4),d1
		jsr	Get_Block_Icon
		sub	#7*20+1,d0
		bmi.s	.CHECK_DOWN
		cmp	#15,d0
		bhs.s	.CHECK_DOWN
		bra.s	.Make_Pos
.CHECK_DOWN		*--*>Check Upper Dings
		add	#32,Bob_Y_Position(a4)
		move	Bob_X_Position(a4),d0
		addq	#8,d0
		move	Bob_Y_Position(a4),d1
		jsr	Get_Block_Icon
		sub	#7*20+1,d0
		bmi.s	.Illegal
		cmp	#15,d0
		bhs.s	.Illegal
		bra.s	.Make_Pos
.Illegal		*--*>Fall darf nicht auftreten
		moveq	#-1,d7
		rts
.Make_Pos		*--*>Y Position machen
		and	#$fff0,Bob_Y_Position(a4)
		lea	Seilbahn_Vals,a0
		mulu	#SB_SIZE,d0
		add	d0,a0
		move	Bob_X_Position(a4),d0
		addq	#8,d0
		and	#$f,d0
		add	d0,a0
		move.b	(a0),d0
		ext.w	d0
		add	d0,Bob_Y_Position(a4)
		moveq	#1,d7
		rts
*-------------------------------------------------------------------------------------
Test_Temet_On	*--*>Kollision mit Seilbahn checken
		lea	(a6),a2
		cmp	#SEILBAHN,TEMET_Status(a2)
		beq	.NoKoll
		cmp	#3,TEMET_Shield_Flag(a2)
		beq	.NoKoll
		*--*>Keine Flug Koordinaten
		move	TEMET_X_Position(a2),d2
		move	TEMET_Y_Position(a2),d3
		add	#10,d3
		add	#16,d2
		*--*>BoBKoords
		move	Bob_X_Position(a4),d0
		addq	#8,d0
		move	Bob_Y_Position(a4),d1
		add	#16,d1
		sub	d2,d0
		bpl.s	.okposX
		neg	d0
.okposX		cmp	#16,d0
		bhs.s	.NoKoll
		sub	d3,d1
		bpl.s	.okposY
		neg	d1
.okposY		cmp	#14,d1
		bhs.s	.NoKoll
		*--*>Kollision !!!
		move	TEMET_Dir_X(a2),TEMET_Anim_Dir(a2)
		move	TEMET_Speed_X(a2),Seilbahn_Speed_Ges(a4)
		clr.w	TEMET_Speed_X(a2)
		clr.w	TEMET_Speed_Y(a2)
		move	#SEILBAHN,TEMET_Status(a2)
		move.b	#1,Seilbahn_Temet_On(a4)
		jsr	Set_TEMET_To_Pos
.NoKoll		rts
*-------------------------------------------------------------------------------------
Set_TEMET_To_Pos	*--*>Set TEMET to Pos
		lea	(a6),a2
		jsr	Set_Hand_On
		*--*>Make Dir Fly
		move	Seilbahn_Last_Proz(a4),d1
		clr.w	Seilbahn_Last_Proz(a4)
		cmp	#100,d1
		beq.s	.InitSrg
		move	#$0202,TEMET_Fly_Dir(a2)
		move.b	Seilbahn_Speed_Ges(a4),d0
		bpl.s	.okPos
		neg.b	d0
.okPos		ext.w	d0
		cmp	#3,d0
		bls.s	.NoOther
.InitSrg		move	#$0101,TEMET_Fly_Dir(a2)
		cmp	#7,d0
		bls.s	.NoOther
		move	#$0000,TEMET_Fly_Dir(a2)
.NoOther		tst	Seilbahn_Speed_Ges(a4)
		beq.s	.Upper
		tst	TEMET_Anim_Dir(a2)
		bpl.s	.TestPos
.TestNeg		tst	Seilbahn_Speed_Ges(a4)
		bmi.s	.NoUpper
		bra.s	.Upper
.TestPos		tst	Seilbahn_Speed_Ges(a4)
		bpl.s	.NoUpper
.Upper		move	#$fffe,TEMET_Fly_Dir(a2)
		addq	#1,Uppercnt
		cmp	#8,Uppercnt
		bls.s	.NoNewDir
		clr.w	Uppercnt
.NoUpper		move	Seilbahn_Speed_Ges(a4),TEMET_Anim_Dir(a2)
.NoNewDir		jsr	Init_Fly_Anim
		rts
*-------------------------------------------------------------------------------------
Set_Hand_On		*--Prep TEMET Hit Vals
		*--Get Correct Anim
		tst	TEMET_Fly_Dir(a2)
		bmi.s	.Dreh_Looping
		tst	TEMET_Anim_Dir(a2)
		bpl.s	.Right_Looping
.Left_Looping	moveq	#0,d0
		move.b	TEMET_Fly_Dir(a2),d0	;0-7
		bra.s	.Got_Anim_NR
.Right_Looping	moveq	#8,d0
		add.b	TEMET_Fly_Dir+1(a2),d0	;8-15
		bra.s	.Got_Anim_NR
.Dreh_Looping	moveq	#16,d0
		;
.Got_Anim_NR	*--Write Fly-Koll-Offsets
		lea	TEMET_FLY_Hang_Vals,a0
		lsl	#2,d0
		add	d0,a0
		move	(a0)+,d0
		move	(a0),d1
		move	Bob_X_Position(a4),d2
		subq	#8,d2
		move	d2,TEMET_Seil_X_Position(a6)
		sub	d0,d2
		move	d2,TEMET_X_Position(a2)
		move	Bob_Y_Position(a4),d3
		subq	#18-10,d3
		move	d3,TEMET_Seil_Y_Position(a6)
		sub	d1,d3
		move	d3,TEMET_Y_Position(a2)
		rts
*-------------------------------------------------------------------------------------
TEMET_FLY_Hang_Vals	*--*>Vals zum dranhngen
		*--*>L
		dc.w	-11,+13
		dc.w	-12,+2
		dc.w	-7,-6
		dc.w	0,0
		dc.w	0,0
		dc.w	0,0
		dc.w	0,0
		dc.w	0,0
		*--*>R
		dc.w	15,+13
		dc.w	16,+2
		dc.w	11,-6
		dc.w	0,0
		dc.w	0,0
		dc.w	0,0
		dc.w	0,0
		dc.w	0,0
		*--*>D
		dc.w	0,-12

Uppercnt		dc.w	0
*-------------------------------------------------------------------------------------
		rsreset
SB_X00		rs.b	1
SB_X01		rs.b	1
SB_X02		rs.b	1
SB_X03		rs.b	1
SB_X04		rs.b	1
SB_X05		rs.b	1
SB_X06		rs.b	1
SB_X07		rs.b	1
SB_X08		rs.b	1
SB_X09		rs.b	1
SB_X10		rs.b	1
SB_X11		rs.b	1
SB_X12		rs.b	1
SB_X13		rs.b	1
SB_X14		rs.b	1
SB_X15		rs.b	1
SB_DIR		rs.b	1
SB_SPEED		rs.b	1
SB_X_PROZ		rs.w	1
SB_SIZE		rs.w	0
*- - - - - - - - - - - - - - - - - - - - - - - - -
SB_BESCH		=$40
*- - - - - - - - - - - - - - - - - - - - - - - - -
Seilbahn_Vals	*--*>Vals for \
		dc.b	00,01,02,03,04,05,06,07,08,09,10,11,12,13,14,15
		dc.b	1
		dc.b	SB_BESCH
		dc.w	50
		*--*>Vals for /
		dc.b	15,14,13,12,11,10,09,08,07,06,05,04,03,02,01,00
		dc.b	-1
		dc.b	SB_BESCH
		dc.w	50
		********************
		*--*>Vals for \1
		dc.b	00,00,01,01,02,02,03,03,04,04,05,05,06,06,07,07
		dc.b	1
		dc.b	SB_BESCH/2
		dc.w	66
		*--*>Vals for \2
		dc.b	08,08,09,09,10,10,11,11,12,12,13,13,14,14,15,15
		dc.b	1
		dc.b	SB_BESCH/2
		dc.w	66
		*--*>Vals for /1
		dc.b	15,15,14,14,13,13,12,12,11,11,10,10,09,09,08,08
		dc.b	-1
		dc.b	SB_BESCH/2
		dc.w	66
		*--*>Vals for /2
		dc.b	07,07,06,06,05,05,04,04,03,03,02,02,01,01,00,00
		dc.b	-1
		dc.b	SB_BESCH/2
		dc.w	66
		********************
		*--*>Vals for \1
		dc.b	00,00,00,00,01,01,01,01,02,02,02,02,03,03,03,03
		dc.b	1
		dc.b	SB_BESCH/4
		dc.w	66
		*--*>Vals for \2
		dc.b	04,04,04,04,05,05,05,05,06,06,06,06,07,07,07,07
		dc.b	1
		dc.b	SB_BESCH/4
		dc.w	66
		*--*>Vals for \3
		dc.b	08,08,08,08,09,09,09,09,10,10,10,10,11,11,11,11
		dc.b	1
		dc.b	SB_BESCH/4
		dc.w	66
		*--*>Vals for \4
		dc.b	12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15
		dc.b	1
		dc.b	SB_BESCH/4
		dc.w	66

		*--*>Vals for /1
		dc.b	15,15,15,15,14,14,14,14,13,13,13,13,12,12,12,12
		dc.b	-1
		dc.b	SB_BESCH/4
		dc.w	80
		*--*>Vals for /2
		dc.b	11,11,11,11,10,10,10,10,09,09,09,09,08,08,08,08
		dc.b	-1
		dc.b	SB_BESCH/4
		dc.w	80
		*--*>Vals for /3
		dc.b	07,07,07,07,06,06,06,06,05,05,05,05,04,04,04,04
		dc.b	-1
		dc.b	SB_BESCH/4
		dc.w	80
		*--*>Vals for /4
		dc.b	03,03,03,03,02,02,02,02,01,01,01,01,00,00,00,00
		dc.b	-1
		dc.b	SB_BESCH/4
		dc.w	80
		*--*>Vals for -
		dc.b	00,00,00,00,00,00,00,00,00,00,00,00,00,00,00,00
		dc.b	0
		dc.b	SB_BESCH/4
		dc.w	90
**************************************************************************************
*-------------------------------------------------------------------------------------
Lava_Spuck_Time		=Bob_Special_1	;B
Lava_Spuck_Time_I	=Bob_Special_1+1	;B
Lava_Anf_Speed_Y	=Bob_Koords_Save2	;LW
*-------------------------------------------------------------------------------------
Test_Mode_Fire	*--*>Test Mode Fire
		moveq	#1,d7
		and	#$fff0,Bob_X_Position(a4)
		and	#$fff0,Bob_Y_Position(a4)
		move	Bob_X_Position(a4),d0
		move	Bob_Y_Position(a4),d1
		jsr	Get_Block_Flags
		swap	d0
		btst	#SCR_EFFECT_BIT,d0
		beq.s	.NoInit
		moveq	#-1,d7
.NoInit		rts
*-------------------------------------------------------------------------------------
I_Lava_Fire_1:	*--*>Make LavaSpuck Init 1
		move.b	#50,Lava_Spuck_Time(a4)
		move.b	#140,Lava_Spuck_Time_I(a4)
		move.l	#0-$00060000,Lava_Anf_Speed_Y(a4)
		jsr	Test_Mode_Fire
		move.l	#FLAME_HANDLE,Bob_Routine(a4)
		tst	d7
		bpl.s	.ENDE
		move.l	#FLAME_AUSL,Bob_Routine(a4)
.ENDE		rts
I_Lava_Fire_2:	*--*>Make LavaSpuck Init 1
		move.b	#40,Lava_Spuck_Time(a4)
		move.b	#100,Lava_Spuck_Time_I(a4)
		move.l	#0-$00050000,Lava_Anf_Speed_Y(a4)
		jsr	Test_Mode_Fire
		move.l	#FLAME_HANDLE,Bob_Routine(a4)
		tst	d7
		bpl.s	.ENDE
		move.l	#FLAME_AUSL,Bob_Routine(a4)
.ENDE		rts
I_Lava_Fire_3:	*--*>Make LavaSpuck Init 1
		move.b	#60,Lava_Spuck_Time(a4)
		move.b	#180,Lava_Spuck_Time_I(a4)
		move.l	#0-$00070000,Lava_Anf_Speed_Y(a4)
		jsr	Test_Mode_Fire
		move.l	#FLAME_HANDLE,Bob_Routine(a4)
		tst	d7
		bpl.s	.ENDE
		move.l	#FLAME_AUSL,Bob_Routine(a4)
.ENDE		rts
*-------------------------------------------------------------------------------------
FLAME_AUSL:	*--*>Fallenausl. checken
		tst	Falle_1_Set(a6)
		bne.s	.Make_Set_1
		tst	Falle_2_Set(a6)
		bne.s	.Make_Set_2
		*--*>FIRE ROUT
		jsr	Test_Bob_Out
		rts
.Make_Set_1	*--*>Make_Set_1
		clr.w	Falle_1_Set(a6)
		bra.s	.INIT_FIRE
.Make_Set_2	*--*>Make_Set_2
		clr.w	Falle_2_Set(a6)
.INIT_FIRE	*--*>Handle now fire
		move.l	#FLAME_HANDLE,Bob_Routine(a4)
		rts
*-------------------------------------------------------------------------------------
FLAME_HANDLE:	*--*>Standrt Routs
		jsr	Test_Bob_Out
		*--*>Test if Now Init Flame
		subq.b	#1,Lava_Spuck_Time(a4)
		bne.s	.Ende
		move.b	Lava_Spuck_Time_I(a4),Lava_Spuck_Time(a4)
		*--*>INIT FIRE FLY
		move	#SI_FIRE,d0
		move	Bob_X_Position(a4),d1
		sub	#16,d1	;*!!!!
		move	LAVABase(a6),d2
		subq	#4,d2
		lea	Area_Enter_Vector(a6),a1
		move.l	a4,a5
		jsr	Search_Bob_Entry
		tst	d0
		bmi.s	.Ende
		move.l	Lava_Anf_Speed_Y(a5),Fire_Speed_Y(a4)
		IFEQ	SOUNDFX
		moveq	#15,d0
		jsr	TFMX+16
		ENDC
.Ende		rts
**************************************************************************************
ILYO6	=8
ILYO5	=8
ILYO4	=8
ILYO3	=8
ILYO2	=8
ILYO1	=8

Fire_Anim_Grow:	dc.w	0
		dc.l	ILava_Obj6
		dc.w	0,ILYO6
		dc.w	0
		dc.l	ILava_Obj5
		dc.w	0,ILYO5
		dc.w	0
		dc.l	ILava_Obj4
		dc.w	0,ILYO4
		dc.w	0
		dc.l	ILava_Obj5
		dc.w	0,ILYO5

Fire_Anim_ANF:	dc.w	0
		dc.l	ILava_Obj4
		dc.w	0,ILYO4
		dc.w	0
		dc.l	ILava_Obj3
		dc.w	0,ILYO3
		dc.w	0
		dc.l	ILava_Obj2
		dc.w	0,ILYO2

Fire_Anim:	dc.w	0
		dc.l	ILava_Obj1
		dc.w	0,ILYO1
		dc.w	0
		dc.l	ILava_Obj2
		dc.w	0,ILYO2
		dc.w	ENTRY_END
		dc.l	Fire_Anim


Fire_Anim_Go_BIG
		dc.w	0
		dc.l	ILava_Obj3
		dc.w	0,ILYO3
		dc.w	0
		dc.l	ILava_Obj4
		dc.w	0,ILYO4
		dc.w	0
		dc.l	ILava_Obj3
		dc.w	0,ILYO3
		dc.w	0
		dc.l	ILava_Obj2
		dc.w	0,ILYO2
		dc.w	0
		dc.l	ILava_Obj1
		dc.w	0,ILYO1
		dc.w	0
		dc.l	ILava_Obj2
		dc.w	0,ILYO2
		dc.w	0
		dc.l	ILava_Obj1
		dc.w	0,ILYO1
		dc.w	0
		dc.l	ILava_Obj2
		dc.w	0,ILYO2
		dc.w	0
		dc.l	ILava_Obj3
		dc.w	0,ILYO3
		dc.w	0
		dc.l	ILava_Obj4
		dc.w	0,ILYO4
		dc.w	0
		dc.l	ILava_Obj3
		dc.w	0,ILYO3
		dc.w	0
		dc.l	ILava_Obj2
		dc.w	0,ILYO2
		dc.w	0
		dc.l	ILava_Obj3
		dc.w	0,ILYO3
		dc.w	0
		dc.l	ILava_Obj2
		dc.w	0,ILYO2
		dc.w	0
		dc.l	ILava_Obj3
		dc.w	0,ILYO3
		dc.w	0
		dc.l	ILava_Obj4
		dc.w	0,ILYO4
		dc.w	0
		dc.l	ILava_Obj4
		dc.w	0,ILYO4
		dc.w	0
		dc.l	ILava_Obj3
		dc.w	0,ILYO3
		dc.w	0
		dc.l	ILava_Obj4
		dc.w	0,ILYO4
		dc.w	0
		dc.l	ILava_Obj3
		dc.w	0,ILYO3
		dc.w	0
		dc.l	ILava_Obj4
		dc.w	0,ILYO4
		dc.w	0
		dc.l	ILava_Obj3
		dc.w	0,ILYO3
		dc.w	0
		dc.l	ILava_Obj4
		dc.w	0,ILYO4
		dc.w	0
		dc.l	ILava_Obj5
		dc.w	0,ILYO5
		dc.w	0
		dc.l	ILava_Obj6
		dc.w	0,ILYO6

		dc.w	END_OUT_DAMAGE
		dc.l	-1

Fire_Anim_Go_DOWN
		dc.w	0
		dc.l	ILava_Obj4
		dc.w	0,ILYO4
		dc.w	0
		dc.l	ILava_Obj3
		dc.w	0,ILYO3
		dc.w	0
		dc.l	ILava_Obj4
		dc.w	0,ILYO4
		dc.w	0
		dc.l	ILava_Obj3
		dc.w	0,ILYO3
		dc.w	0
		dc.l	ILava_Obj4
		dc.w	0,ILYO4
		dc.w	0
		dc.l	ILava_Obj3
		dc.w	0,ILYO3
		dc.w	0
		dc.l	ILava_Obj4
		dc.w	0,ILYO4
		dc.w	0
		dc.l	ILava_Obj5
		dc.w	0,ILYO5
		dc.w	0
		dc.l	ILava_Obj6
		dc.w	0,ILYO6

		dc.w	END_OUT_DAMAGE
		dc.l	-1

*-------------------------------------------------------------------------------------
Fire_X_Dir		=Bob_Special_1		;B
Fire_Counter		=Bob_Special_1+1	;B
Fire_X_Extrem		=Bob_Special_2		;B
Fire_FlubberCounter	=Bob_Special_2+2	;B
Fire_Y_Position		=Bob_Koords_Save1	;LW
Fire_Speed_Y		=Bob_Koords_Save2	;LW
*-------------------------------------------------------------------------------------
FLUBBERTIME	=10
*-------------------------------------------------------------------------------------
I_Fire_Fly:	*--*>Init LAVA Fly
		move.b	#FLUBBERTIME,Fire_FlubberCounter(a4)
		jsr	Get_Zuffi_d0
		jsr	Get_Zuffi_d0
		move.b	#1,Fire_X_Dir(a4)
		and	#1,d0
		beq.s	.NoLeft
		move.b	#-1,Fire_X_Dir(a4)
.NoLeft		move.l	#FIRE_FLY_ROUT,Bob_Routine(a4)
		jsr	Get_Zuffi_d0
		and	#3,d0
		move.b	d0,Fire_X_Extrem(a4)
		rts
*-------------------------------------------------------------------------------------
FIRE_LEFT_Rout:	*--*>Standart Routs
		jsr	Standart_BobAnim
		subq	#8,Bob_Y_Position(a4)
		jsr	Test_TEMET_Hit
		addq	#8,Bob_Y_Position(a4)
		subq	#1,Bob_X_Position(a4)
		jsr	Test_If_Ground
		jsr	Show_InkaObject
		rts
*-------------------------------------------------------------------------------------
FIRE_RIGHT_Rout	*--*>Standart Routs
		jsr	Standart_BobAnim
		subq	#8,Bob_Y_Position(a4)
		jsr	Test_TEMET_Hit
		addq	#8,Bob_Y_Position(a4)
		addq	#1,Bob_X_Position(a4)
		jsr	Test_If_Ground
		jsr	Show_InkaObject
		rts
*-------------------------------------------------------------------------------------
Test_If_Ground	*--*>Test if There is Still Ground
		move	Bob_X_Position(a4),d0
		addq	#8,d0
		move	Bob_Y_Position(a4),d1
		;add	Bob_Y_Offset(a4),d1
		;add	Bob_Height(a4),d1
		add	#16,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#boden,Block_Through(a1)
		beq.s	.OkGround
		*--*>kein Ground
		move.b	#1,Fire_X_Dir(a4)
		cmp.l	#FIRE_RIGHT_Rout,Bob_Routine(a4)
		beq.s	.okDirOk
		move.b	#-1,Fire_X_Dir(a4)
.okDirOk	move.l	#Fire_Anim_Grow,Bob_Next_Anim(a4)
		move.l	#FIRE_FLY_ROUT,Bob_Routine(a4)
		clr.l	Fire_Speed_Y(a4)
		move	#2,Bob_Anim_Delay_Init(a4)
		add	#10,Bob_Y_Position(a4)
		move.b	#80,Fire_FlubberCounter(a4)
		jsr	Get_Next_Bob_Frame
.OkGround	rts
*-------------------------------------------------------------------------------------
FIRE_FALL_Rout	*--*>Standart_Routs
		jsr	Test_Bob_Out
		jsr	Standart_BobAnim
		*--*>Make_Y_Speed !
		move	Bob_Y_Position(a4),Fire_Y_Position(a4)
		move.l	Fire_Speed_Y(a4),d0
		add.l	d0,Fire_Y_Position(a4)
		move	Fire_Y_Position(a4),Bob_Y_Position(a4)
		add.l	#$00002000,Fire_Speed_Y(a4)
		tst.l	Fire_Speed_Y(a4)
		bmi	.NoOut
		*--*>Test Wieder in LAVA
		move	LAVABase(a6),d0
		sub	Bob_Y_Position(a4),d0
		bpl	.NoOut
		jsr	Out_Bob_Damage
.NoOut		jsr	Show_InkaObject
		rts
*-------------------------------------------------------------------------------------
FIRE_FLY_ROUT	*--*>Standart Routs
		jsr	Test_Bob_Out
		jsr	Standart_BobAnim
		jsr	Test_TEMET_Hit
		jsr	Show_InkaObject
		*--*>Test if Flubber
		move.l	a4,a5
		subq.b	#1,Fire_FlubberCounter(a4)
		bpl.s	.NOFLUBBER
		move.b	#FLUBBERTIME,Fire_FlubberCounter(a4)
		move	#SI_FIRE,d0
		move	Bob_X_Position(a5),d1
	sub	#16,d1	;*!!!!
		move	Bob_Y_Position(a5),d2
		lea	Area_Enter_Vector(a6),a1
		jsr	Search_Bob_Entry
		tst	d0
		bmi.s	.NOFLUBBER
		move.l	#FIRE_FALL_Rout,Bob_Routine(a4)
		move.l	#Fire_Anim_Go_DOWN,Bob_Next_Anim(a4)
		move	#1,Bob_Anim_Delay_Init(a4)
		move.l	a5,a4

.NOFLUBBER	*--*>NoFlubberSpeed
		move.l	a5,a4
		*--*>Make_X_Speed
		move.b	Fire_X_Extrem(a4),d0
		beq.s	.MAKE_NORM
		cmp.b	#1,d0
		beq.s	.MAKE_NORMSRG1
		cmp.b	#2,d0
		beq.s	.MAKE_NORMSRG2
		cmp.b	#3,d0
		beq.s	.MAKE_NORMSRG3
		bra.s	.MAKE_Y_SPEED
.MAKE_NORMSRG1	*--*>FIRE FLY 1
		addq.b	#1,Fire_Counter(a4)
		move.b	Fire_Counter(a4),d0
		and.b	#1,d0
		bne.s	.MAKE_Y_SPEED
		addq	#1,Bob_X_Position(a4)
		tst.b	Fire_X_Dir(a4)
		bpl.s	.MAKE_Y_SPEED
		subq	#2,Bob_X_Position(a4)
		bra.s	.MAKE_Y_SPEED
.MAKE_NORMSRG2	*--*>FIRE FLY 2
		addq	#1,Bob_X_Position(a4)
		tst.b	Fire_X_Dir(a4)
		bpl.s	.MAKE_Y_SPEED
		subq	#2,Bob_X_Position(a4)
		bra.s	.MAKE_Y_SPEED
.MAKE_NORMSRG3	*--*>FIRE FLY 3
		addq	#2,Bob_X_Position(a4)
		tst.b	Fire_X_Dir(a4)
		bpl.s	.MAKE_Y_SPEED
		subq	#4,Bob_X_Position(a4)
		bra.s	.MAKE_Y_SPEED
.MAKE_NORM	*--*>FIRE FLY 1
		addq.b	#1,Fire_Counter(a4)
		move.b	Fire_Counter(a4),d0
		and.b	#3,d0
		bne.s	.MAKE_Y_SPEED
		addq	#1,Bob_X_Position(a4)
		tst.b	Fire_X_Dir(a4)
		bpl.s	.MAKE_Y_SPEED
		subq	#2,Bob_X_Position(a4)
		;bra.s	.MAKE_Y_SPEED
.MAKE_Y_SPEED	*--*>Make_Y_Speed !
		move	Bob_Y_Position(a4),Fire_Y_Position(a4)
		move.l	Fire_Speed_Y(a4),d0
		add.l	d0,Fire_Y_Position(a4)
		move	Fire_Y_Position(a4),Bob_Y_Position(a4)
		add.l	#$00003000,Fire_Speed_Y(a4)
		tst.l	Fire_Speed_Y(a4)
		bmi	.Ende
		*--*>Test Wieder in LAVA
		move	LAVABase(a6),d0
		sub	Bob_Y_Position(a4),d0
		bmi	.Out
		*--*>Test if Ground Koll !
		move	Bob_X_Position(a4),d0
		addq	#8,d0
		move	Bob_Y_Position(a4),d1
		;add	Bob_Y_Offset(a4),d1
		;add	Bob_Height(a4),d1
		add	#16,d1
		jsr	Get_Block_Icon
		add	d0,d0
		add	d0,d0
		move.l	Scr_Block_EntryAdrs(a6),a1
		move.l	(a1,d0),a1
		cmp.b	#boden,Block_Through(a1)
		bne	.Ende
		*--*>GROUNDKOLL !!!
		move.l	a4,a5
		and	#$fff0,Bob_Y_Position(a4)
		move	#SI_FIRE,d0
		move	Bob_X_Position(a5),d1
		sub	#16,d1	;*!!!!
		;subq	#8,d2
		move	Bob_Y_Position(a5),d2
		lea	Area_Enter_Vector(a6),a1
		jsr	Search_Bob_Entry
		tst	d0
		bmi.s	.Out_Fire
		IFEQ	SOUNDFX
		moveq	#15,d0
		jsr	TFMX+16
		ENDC
		move.l	#FIRE_LEFT_Rout,Bob_Routine(a4)
		move.l	#Fire_Anim_Go_BIG,Bob_Next_Anim(a4)
		move	#1,Bob_Anim_Delay_Init(a4)
		move	#SI_FIRE,d0
		move	Bob_X_Position(a5),d1
		sub	#16,d1	;*!!!!
		;addq	#8,d2
		move	Bob_Y_Position(a5),d2
		lea	Area_Enter_Vector(a6),a1
		jsr	Search_Bob_Entry
		tst	d0
		bmi.s	.Out_Fire
		move.l	#FIRE_RIGHT_Rout,Bob_Routine(a4)
		move.l	#Fire_Anim_Go_BIG,Bob_Next_Anim(a4)
		move	#1,Bob_Anim_Delay_Init(a4)
.Out_Fire		move.l	a5,a4
.Out		jsr	Out_Bob_Damage
.Ende		rts

**************************************************************************************
	ENDC
